Skip to content

FernandoEsparrinha/h0b0-redo

Repository files navigation

♪ h0b0 𝓻𝓮𝓭𝓸 ♫

Welcome to the repository for the online audiovisual experience of h0b0's 𝓻𝓮𝓭𝓸 album. This project is inspired by the underlying circularity of the album's concept. As 𝓻𝓮𝓭𝓸 implies, this circle is ever present — a loop. Each song is a circle by itself, loopable, infinite. Join these pieces and compose the larger circle, the album.


You can find more on h0b0 in the following places:

You can also listen to it in the usual platforms:


Development

This project was developed using p5.js, a JavaScript library for creative coding. If you would like to learn more, we suggest you look at the official p5.js website and references, along with The Coding Train's tutorials and content.

We can decompose the project into two layers.

Interface

The interface gives the user the controls and information on the musical component. The circles allow the tracks to be changed. Below that, you have the display. There you can see the track name, time, loop status, and playback speed.

Visuals

The background images can be regarded as a separate layer, although still related to the musical component. These visualisations are done through the use of glsl shaders.

You can learn more about shaders in p5js in this guide by Casey Conchinha and Louise Lessél. Aferriss has a great collection of heavily commented p5js Shader Examples. And for even more examples and inspiration you can check Shadertoy.

In this project the following shaders were ported and modified:


Issues

Mobile

  • issue: MusicController stop() not working;
  • issue: webapp not working in landscape mode;
  • issue: speed buttons stay highlighted on click;

Desktop

  • issue: looping songs and changing with keyboard arrows does not remove looping state of previous track;

Technical

Web:

  • download music to cache (faster loading if page is refreshed, save data);

About

H0b0 redo album experience

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages