David Mourato is a sound artist developing long-form ambient works rooted in drift, memory, and presence.His practice moves through drift-based composition, listening environments, and site-responsive performance.Selected works include Time Drift, Sound Vigilance, and Uma Hora Na Quinta Dimensão.Based in Crete.

document.addEventListener('DOMContentLoaded', function () { const modal = document.getElementById('glm-carousel-modal'); const slides = modal.querySelectorAll('.glm-slide'); const videos = modal.querySelectorAll('video'); let currentSlide = 0; function showSlide(index) { currentSlide = (index + slides.length) % slides.length; slides.forEach(function (slide, i) { slide.classList.toggle('glm-active', i === currentSlide); }); videos.forEach(function (video) { video.pause(); }); } function openModal() { modal.classList.add('glm-open'); showSlide(0); } function closeModal() { modal.classList.remove('glm-open'); videos.forEach(function (video) { video.pause(); }); } document.addEventListener('click', function (e) { const openLink = e.target.closest('a[href="#glm-carousel"]'); const closeLink = e.target.closest('[data-glm-close]'); const next = e.target.closest('[data-glm-next]'); const prev = e.target.closest('[data-glm-prev]'); if (openLink) { e.preventDefault(); e.stopPropagation(); openModal(); return false; } if (closeLink) { e.preventDefault(); closeModal(); } if (next) { e.preventDefault(); showSlide(currentSlide + 1); } if (prev) { e.preventDefault(); showSlide(currentSlide - 1); } }); document.addEventListener('keydown', function (e) { if (!modal.classList.contains('glm-open')) return; if (e.key === 'Escape') closeModal(); if (e.key === 'ArrowRight') showSlide(currentSlide + 1); if (e.key === 'ArrowLeft') showSlide(currentSlide - 1); }); });
(function () { /* Supprime proprement une ancienne version si Carrd recharge le code sans recharger la page. */ if (window.dmPointerController) { window.dmPointerController.abort(); } document .querySelectorAll('.dm-mouse-dot, .dm-touch-dot') .forEach(function (element) { element.remove(); }); const controller = new AbortController(); const signal = controller.signal; window.dmPointerController = controller; /* ======================================== DESKTOP ======================================== */ const mouseDot = document.createElement('div'); mouseDot.className = 'dm-mouse-dot'; document.body.appendChild(mouseDot); document.addEventListener( 'pointermove', function (event) { if (event.pointerType !== 'mouse') return; mouseDot.style.left = event.clientX + 'px'; mouseDot.style.top = event.clientY + 'px'; mouseDot.style.visibility = 'visible'; }, { passive: true, signal: signal } ); document.documentElement.addEventListener( 'mouseleave', function () { mouseDot.style.visibility = 'hidden'; }, { signal: signal } ); document.documentElement.addEventListener( 'mouseenter', function () { mouseDot.style.visibility = 'visible'; }, { signal: signal } ); /* ======================================== MOBILE / TOUCH ======================================== */ let touchDot = null; let activePointerId = null; function removeTouchDotImmediately() { if (!touchDot) return; touchDot.remove(); touchDot = null; activePointerId = null; } function createTouchDot(x, y) { removeTouchDotImmediately(); touchDot = document.createElement('div'); touchDot.className = 'dm-touch-dot'; touchDot.style.left = x + 'px'; touchDot.style.top = y + 'px'; document.body.appendChild(touchDot); } function moveTouchDot(x, y) { if (!touchDot) return; touchDot.style.left = x + 'px'; touchDot.style.top = y + 'px'; } function removeTouchDot() { if (!touchDot) return; const oldDot = touchDot; touchDot = null; activePointerId = null; oldDot.classList.add('dm-touch-leaving'); setTimeout(function () { oldDot.remove(); }, 180); } document.addEventListener( 'pointerdown', function (event) { if (event.pointerType === 'mouse') return; activePointerId = event.pointerId; createTouchDot( event.clientX, event.clientY ); }, { passive: true, signal: signal } ); document.addEventListener( 'pointermove', function (event) { if (event.pointerType === 'mouse') return; if (event.pointerId !== activePointerId) return; moveTouchDot( event.clientX, event.clientY ); }, { passive: true, signal: signal } ); document.addEventListener( 'pointerup', function (event) { if (event.pointerType === 'mouse') return; if (event.pointerId !== activePointerId) return; removeTouchDot(); }, { passive: true, signal: signal } ); document.addEventListener( 'pointercancel', function () { removeTouchDot(); }, { passive: true, signal: signal } ); window.addEventListener( 'blur', function () { mouseDot.style.visibility = 'hidden'; removeTouchDot(); }, { signal: signal } ); })();

SELECTED WORKS

TIME DRIFT
2025
Long-form ambient transmissions built through drift-based performance.
Live sets and durational listening fields.


SOUND VIGILANCE
2024 - Ongoing
A listening practice: sound as alignment with place and attention.
Study of restraint, environment, and minimal intervention.


GLOBAL LIVE MED
2022
Live ambient performance during Global Live Med, Athens.
Presented as an atmosphere of connection and reflection within a Mediterranean music and advocacy event.


UMA HORA NA QUINTA DIMENSÃO
2020
Debut full-length album: long-form ambient composition as journey.
Spatial listening, slow transformation, dimensional drift.


MOON SESSION
2020
Live performance at Syntopia, Rethymno, Greece.
Improvised ambient performance in dialogue with place and night.


HEARTSCAPE
2020
A continuous one-hour soundscape unfolding across ten phases.
First presented live 2020-07 (House of Yoga, Luxembourg).

document.addEventListener('DOMContentLoaded', function () { /* ========================= PRESS DOT ========================= */ let dot = null; let activePointerId = null; function createDot(x, y) { if (dot) { dot.remove(); } dot = document.createElement('div'); dot.className = 'press-dot'; dot.style.left = `${x}px`; dot.style.top = `${y}px`; document.body.appendChild(dot); requestAnimationFrame(function () { if (dot) { dot.classList.add('is-visible'); } }); } function moveDot(x, y) { if (!dot) return; dot.style.left = `${x}px`; dot.style.top = `${y}px`; } function removeDot() { if (!dot) return; const currentDot = dot; dot = null; activePointerId = null; currentDot.classList.remove('is-visible'); currentDot.classList.add('is-leaving'); setTimeout(function () { currentDot.remove(); }, 200); } document.addEventListener('pointerdown', function (event) { activePointerId = event.pointerId; createDot(event.clientX, event.clientY); }); document.addEventListener('pointermove', function (event) { if ( event.pointerType === 'mouse' || event.pointerId === activePointerId ) { moveDot(event.clientX, event.clientY); } }); document.addEventListener('pointerup', removeDot); document.addEventListener('pointercancel', removeDot); window.addEventListener('blur', removeDot); /* ========================= CAROUSEL ========================= */ const modal = document.getElementById('glm-carousel-modal'); if (!modal) return; const slides = modal.querySelectorAll('.glm-slide'); const videos = modal.querySelectorAll('video'); let currentSlide = 0; function showSlide(index) { currentSlide = (index + slides.length) % slides.length; slides.forEach(function (slide, i) { slide.classList.toggle( 'glm-active', i === currentSlide ); }); videos.forEach(function (video) { video.pause(); }); } function openModal() { modal.classList.add('glm-open'); showSlide(0); } function closeModal() { modal.classList.remove('glm-open'); videos.forEach(function (video) { video.pause(); }); } document.addEventListener('click', function (event) { const openLink = event.target.closest( 'a[href="#glm-carousel"]' ); const closeLink = event.target.closest( '[data-glm-close]' ); const next = event.target.closest( '[data-glm-next]' ); const prev = event.target.closest( '[data-glm-prev]' ); if (openLink) { event.preventDefault(); event.stopPropagation(); openModal(); return false; } if (closeLink) { event.preventDefault(); closeModal(); } if (next) { event.preventDefault(); showSlide(currentSlide + 1); } if (prev) { event.preventDefault(); showSlide(currentSlide - 1); } }); document.addEventListener('keydown', function (event) { if (!modal.classList.contains('glm-open')) { return; } if (event.key === 'Escape') { closeModal(); } if (event.key === 'ArrowRight') { showSlide(currentSlide + 1); } if (event.key === 'ArrowLeft') { showSlide(currentSlide - 1); } }); });

METHOD

Sound is approached as space. Not only something to hear, but something to move within.Drift guides the process. Rather than directing form, I stay with what is unfolding and allow it to shape itself over time.The work favors duration. Long-form structures create the conditions for subtle changes to emerge and be perceived.Listening is central. Form appears through shifts in attention, through small transitions that open new states within the same material.A parallel framework of notation and reflection helps trace these changes as they happen and return to them later.The focus remains on restraint. Minimal intervention, threshold states, and the space where perception begins to shift.

ORIGIN

Biographical matter currently being metabolised.

CONTACT

For exhibitions, collaborations, and commissions:|ExhibitionsCollaborationsCommissions

UPDATES

Occasional notes on releases, listening sessions, and site-responsive work.|TIME DRIFT 999
Japan, late 2026 - In formation.
Time Drift 999 is a quiet, atmospheric live extension of David Mourato's long-form sound work.Build around a selection of existing pieces, fragments, and recorded materials, the project is compact, adaptable, and shaped in conversation with the spaces, artists, and hosts it encounters in Japan.More soon.