Hi there! Here are some of my programming projects Aside from computers and programming, music is a great passion of mine, so my own projects usually revolve around systems that help me create music. If you have any questions feel free to send me an email at johan [at] amomentunfolding.com :)

evo

My own software for improvisation and live performance of music. It is a sort of generative meta-DAW based on live looping and realtime DSP with musical analysis. Loops are recorded into it and an interactive network map is automatically generated, allowing me to control each and every sound I add to the arising composition.

It is still in the prototype-phase but the plan is to eventually have it be a self-evolving system that listens to me in realtime and uses knowledge of my musical patterns in the past to create new combinations and effects in a way it thinks I would like.

some demos so far:

an ambient sound bath session I hosted in Stockholm using the system, along with a circular speaker setup.
it is designed to be portable as well, running on a Raspberry pi. Here I am sitting in the forest and doing some vocal loops.
By using a 3D depth camera I made it possible to control the effects in the audio system with my body movements in real-time. How I move my arm can for example be connected to the amount of reverb.
stack:
- All built using Rust, with a separated architecture that allows for remote control of the real-time parts of the audio engine
- Rust frontend that can be run natively or in the browser through WASM, controlling the audio engine via websockets
- Audio system was previously done using SuperCollider, but due to latency and performance issues I decided to build my own engine.
- a previous version of the frontend was built in svelte / typescript, with d3.js.
    even more previously I used React.
    neither of them were suitable because of the fast updates required, so Rust+WASM was chosen instead.

octoscore

I have worked for 5+ years as a full stack developer, mainly on a project called octoscore. It is a general platform for business intelligance and quality management, where the users create their own survey-like templates to be filled, and define how different answers should be graded and compared. The resulting data is then automatically put together into overarching reports, where you can see the score developments over time in some fancy interactive graphs.

The main users of the platform were call-centers that used it as a measurement of how well their current processes were working. As a simple example a user could create a data-point called "Customer satisfaction" with a possible score of 0-100%. This was then answered hundreds of times while they were judging the outcomes of their phone calls. Our system automatically aggregated all of these data-points and performed calculations to see how it developed over time. If the average score sank a week after the users had changed something in their process this allowed them to spot it and do something about it. These data-points can also be combined and grouped arbitraily which enables a great flexibility for more overarching and abstract measurements.

I was part of a small team and was there throughout the process of turning a demo MVP into a production-ready application. It is online on https://app.octoscore.de/register, registration is required so here are some screenshots: (click to expand)

stack
- React / Redux / js frontend. Interactive graphs created with Echarts and d3.js
- Python / Flask / SQLAlchemy backend
- PostgreSQL database
- Domain Driven Design Architecture
- Automatic Docker deployment on AWS ElasticBeanstalk through BitBucket pipeline CI/CD
- WebSockets for realtime collaboration och updates
- Horizontal scaling using load balancing and a Redis cluster

map

I primarily improvise when I make music and use a variety of techniques and instruments. I wanted a way for myself and others to explore my different styles of creation non-linearily so I built an interactive 3D-map of my recordings, grouped together in different clusters based on metadata such as instrumentation, location, etc.. Available online on: https://map.amomentunfolding.com or a short video demo:

stack:
- python (to generate the graph-data)
- svelte frontend with three.js for the 3D-map

dtar

A self-contained effect system for acoustic guitar, built for headless Raspberri Pi and with Arduino. Interaction is done through a 4x4 button matrix, rotary encoders, and an acceloromoter that notices how the guitar moves and changes the sound accordingly.

A performance using it as part of my Bachelor exam.
stack:
- SuperCollider
- Python
- C/C++ on Arduino
- headless Raspberry pi