Alexander Refsum Jensenius

I am Professor of Music Technology at the University of Oslo, Director of RITMO, Head of the fourMs Lab and Director of MishMash Centre for AI and Creativity. Editor of A NIME Reader and Sonic Design. Author of Sound Actions and Still Standing.
Empty presentation slide with a bullet list

No bullets, please!

This post has a simple mission: stop making template-based “title + bullet point”-style slides for your presentation. Yes, most presentation software suggests this as a default, but that doesn’t make it any better. Instead, think about your slides as complementary to what you are saying. Auditory–visual perception Human perception is inherently multimodal, meaning that we continuously experience the world with all our senses. In a presentation, that means the audience is processing your voice, your slides, your gestures, and the room itself as part of one combined experience. ...

April 3, 2026 · 3 min · 586 words · ARJ
There is no other connection between this image and the content of the post other than it is written during Easter vacation while I was at my cabin.

Building a local LLM-driven chat for my web page

I wanted to test whether I could add a local chatbot to arj.no/chat/ that answers questions about my website content and not the whole internet. Since my blog is built using Hugo, a static site generator, I don’t have any server in the background that can host the Large Language Model (LLM). Instead I looked for a simple solution with standard web technologies and files. Running a model in the browser with WebLLM After discussing with CoPilot, I ended up using WebLLM, which allows language models to run inside the browser. It relies on WebGPU, which makes local AI processing possible, if you have Edge or Chrome available. ...

April 2, 2026 · 6 min · 1262 words · ARJ

More MishMash bubble animations

Some weeks ago, I wrote about how I made blinking MishMash bubbles. Today, I wanted to see if I could create more variations on this and make a longer animation. This was inspired by the dynamic RITMO emblem, which reconfigures itself once in a while: That is a video, though, and was made manually back in 2018. Now, I would like to know if I can get agential help creating dynamic GIFs from SVG files. ...

March 29, 2026 · 4 min · 645 words · ARJ

Developing basic music tools with GitHub Copilot agents

Many musicians rely on basic tools in everyday life, including a tuner, a metronome, and a keyboard. I support the kids in a marching band, and I see that they rely on numerous poorly developed apps that differ between iOS and Android devices. Many of them also include ads, and some even play video ads in the middle of a tuning session. I wanted to see if I could develop some web-based apps to solve the problem. ...

March 22, 2026 · 6 min · 1128 words · ARJ

Making the MishMash Bubbles Blink

Now that we have the MishMash “bubble” illustration as an editable SVG image, it is time to start playing around with how it can be modified dynamically. The first experiment was to try to make it blink. Here, I describe two approaches, using CSS and a GIF. CSS Hover Blink The CSS version is based on this code: .blink-eye-thumb { display: block; transform-origin: center; will-change: transform; } a:hover .blink-eye-thumb, a:focus-visible .blink-eye-thumb, .blink-eye-thumb:hover, .mishmash-bubbles:hover .blink-eye-thumb { animation: bubble-eye-blink 850ms ease-in-out 2; } @keyframes bubble-eye-blink { 0%, 12%, 40%, 100% { transform: scaleY(1); } 20%, 26% { transform: scaleY(0.08); } 48%, 54% { transform: scaleY(0.14); } } The animation compresses the image vertically on hover/focus. To ensure it works everywhere, it targets: ...

March 15, 2026 · 2 min · 307 words · ARJ

Rotate PDF files properly

While preparing for a concert yesterday, I needed to copy a bunch of scores (in PDF format) over to a pad. They were all from different sources, and some had been scanned upside down. They looked fine on my computer, so I couldn’t understand why they ended up being shown upside down on my pad. After some investigation, I realized that it was because the rotation was written into the metadata of the file. This worked fine on my laptop but not in the score reader program on my pad. If you want a file to be truly rotated by 180 degrees, you should rotate and then flatten that rotation so the orientation is baked into the PDF. ...

March 15, 2026 · 2 min · 220 words · ARJ
MishMash logo

Cleaning Up the MishMash Cube SVG Image

Some weeks ago, I wrote about how I modified the SVG image of the MishMash “bubbles”. Today, I got around to doing a similar process with the MishMash “cube”, an illustration summarising how we want to work in MishMash. The cube The idea of the cube is to present the work packages that structure the organisation, the perspectives that are central to all our work, and the approaches which describe the methods used. One of the aims of MishMash is to enable true interdisciplinary collaboration, and the idea is that the cube will assist us with communicating the multidimensionality of such an endeavour. ...

March 14, 2026 · 2 min · 292 words · ARJ
MishMash logo

Modifying SVG images

I have previously written about the MishMash emblem and how I cropped it in a text editor. This was based on the fact that an SVG image is a “vector image” in which all elements are described programmatically. So what appears as an image on screen: is, in fact, an XML file with information. Ever since I discovered this, I thought it could be fun to script changes to the SVG. However, when I opened the file to inspect the content, I quickly realised that it wasn’t as easy as that: ...

February 28, 2026 · 3 min · 633 words · ARJ

Printing booklets from a PDF

A little while ago, I wrote about how to prepare a document for multi-page printing using the terminal. Today, I had to find a solution for printing a PDF in “booklet” mode, meaning that pages are printed so that, after folding the printed sheets in half and nesting them, the page order reads correctly. On Linux (Ubuntu), I use the pdfbook2 command — a wrapper around pdfjam that reorders pages for booklets. See the pdfjam documentation on CTAN (https://ctan.org/pkg/pdfjam) and the TeX Live distribution (https://tug.org/texlive/) for installation; on Debian/Ubuntu it’s usually available via the texlive-extra-utils package (https://packages.debian.org/search?keywords=texlive-extra-utils). ...

February 12, 2026 · 1 min · 125 words · ARJ

Hyperscanning with fNIRS

Today, we had an engaging fNIRS workshop at RITMO. One of the tasks we explored was “hyperscanning,” a term that confused several of the non-psychology people present. I was also bewildered when I encountered this term for the first time, so here is a short blog post to explain what it is. What is Hyperscanning? The short answer is that hyperscanning is the simultaneous recording of neural or physiological activity from two or more people to study interpersonal brain dynamics. ...

January 15, 2026 · 3 min · 548 words · ARJ