Music & Sound

Archival Works & Experimental Compositions

Experimental Mixes

San Francisco Chronicle
EXPERIMENTAL MIX
Sandwich For Lunch
EXPERIMENTAL MIX
Mello
EXPERIMENTAL MIX
You Do Anything
EXPERIMENTAL MIX
Murphy Harrison
EXPERIMENTAL MIX
Josephine
EXPERIMENTAL MIX
Opals and Pearls
EXPERIMENTAL MIX
Today
EXPERIMENTAL MIX

Archival Works (1990 - 2002)

Pontoon
ARCHIVAL RECORDING
Piano Composition 2
ARCHIVAL RECORDING
Piano Composition 1
ARCHIVAL RECORDING
Julep
ARCHIVAL RECORDING
Julep (Heavy Echo)
ARCHIVAL RECORDING
Just as Empty as Today
ARCHIVAL RECORDING
Cactus
ARCHIVAL RECORDING
Cactus (Acoustic)
ARCHIVAL RECORDING
Carolina (Instrumental)
ARCHIVAL RECORDING
Looking to Find It All Out
ARCHIVAL RECORDING
Tin Town
ARCHIVAL RECORDING
I Put Spell On Baby
ARCHIVAL RECORDING
Josephine (Archival)
ARCHIVAL RECORDING
Poor Boy
ARCHIVAL RECORDING
Prednisone
ARCHIVAL RECORDING
Caught Down in the Middle
ARCHIVAL RECORDING
Fun Factory
ARCHIVAL RECORDING
Hey Mister Mister
ARCHIVAL RECORDING
I Know It's Been Great
ARCHIVAL RECORDING
Cheese Balls and Fries
ARCHIVAL RECORDING
Cheese Balls (Acoustic)
ARCHIVAL RECORDING
Murphy Harrison (Archival)
ARCHIVAL RECORDING
Piano Composition: 4 Kristina
ARCHIVAL RECORDING
I've Got to Have My Berries
ARCHIVAL RECORDING
Taking a Long Time
ARCHIVAL RECORDING

Audio Library

prednisone
MP3 FILE
backyard soul pudding
MP3 FILE
synth1
MP3 FILE
mellow.theora
OGV FILE
cactus intro
MP3 FILE
mister mister
MP3 FILE
sandwich.audioonly
MP3 FILE
tintown
MP3 FILE
piano2
MP3 FILE
frankie
MP3 FILE
Doesntmatter
MP3 FILE
julep
MP3 FILE
prednisone intro
MP3 FILE
comeourway
MP3 FILE
77
MP3 FILE
today.theora
OGV FILE
san fran chronicle.bump.audioonly
MP3 FILE
opals and pearls.theora
OGV FILE
Today1
MP3 FILE
mellow.audioonly
MP3 FILE
berries acoustic
MP3 FILE
piano4
MP3 FILE
murphy.audioonly
MP3 FILE
murphy.theora
OGV FILE
carolina
MP3 FILE
san fran chronicle.theora
OGV FILE
murphy
MP3 FILE
berries
MP3 FILE
you do anything.audioonly
MP3 FILE
you do anything.theora
OGV FILE
joephine.audioonly
MP3 FILE
lookin to find a way out
MP3 FILE
josephine
MP3 FILE
doo
MP3 FILE
joephine.theora
OGV FILE
rock sex light
MP3 FILE
comeonin.theora
OGV FILE
piano 1
MP3 FILE
caught
MP3 FILE
julep echo
MP3 FILE
cheese balls electric
MP3 FILE
anderson nathan
MP3 FILE
funfactory
MP3 FILE
sandwich.theora
OGV FILE
san fran chronicle.bump.audioonly.theora
OGV FILE
opals and pearls.audioonly
MP3 FILE
looking to find
MP3 FILE
piano 1 test
MP3 FILE
synth2
MP3 FILE
mellow
MP3 FILE
murphy 1
MP3 FILE
Iknowitsbeengreat
MP3 FILE
Today3
MP3 FILE
san fran chronicle.audioonly
MP3 FILE
takin
MP3 FILE
comeonin.audioonly
MP3 FILE
opals pearls.boom.audioonly.theora
OGV FILE
circles
M4A FILE
cheeseBalls
MP3 FILE
nathan john Cabral
MP3 FILE
piano5
MP3 FILE
tintown
MP3 FILE
julep electric
MP3 FILE
today.audioonly
MP3 FILE
poorboy
MP3 FILE
takinglongtime
MP3 FILE
opals pearls.audioonly
MP3 FILE
Cactus1
MP3 FILE
opals pearls.boom.audioonly
MP3 FILE
Cactus
MP3 FILE
opals pearls.theora
OGV FILE
Now Playing Select a track
0:00 / 0:00
playPauseBtn.addEventListener('click', () => { if (mainAudio.paused) { mainAudio.play(); updatePlayPauseUI(true); visBars.forEach(bar => bar.style.animationPlayState = 'running'); } else { mainAudio.pause(); updatePlayPauseUI(false); visBars.forEach(bar => bar.style.animationPlayState = 'paused'); } }); function updatePlayPauseUI(isPlaying) { if (isPlaying) { playPath.style.display = 'none'; pausePath.style.display = 'block'; } else { playPath.style.display = 'block'; pausePath.style.display = 'none'; } } mainAudio.addEventListener('timeupdate', () => { const { duration, currentTime } = mainAudio; const progressPercent = (currentTime / duration) * 100; progressBar.style.width = `${progressPercent}%`; currentTimeEl.innerText = formatTime(currentTime); if (duration) durationEl.innerText = formatTime(duration); }); progressContainer.addEventListener('click', (e) => { const width = progressContainer.clientWidth; const clickX = e.offsetX; const duration = mainAudio.duration; mainAudio.currentTime = (clickX / width) * duration; }); function formatTime(time) { const minutes = Math.floor(time / 60); const seconds = Math.floor(time % 60); return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`; } mainAudio.addEventListener('ended', () => { visBars.forEach(bar => bar.classList.remove('playing')); // Auto-play next track logic if (currentTrackElement) { const allTracks = Array.from(document.querySelectorAll('.track-item')); const currentIndex = allTracks.indexOf(currentTrackElement); if (currentIndex !== -1 && currentIndex < allTracks.length - 1) { const nextTrack = allTracks[currentIndex + 1]; nextTrack.click(); } } });