~comcloudway/pages

35fdcbcfa32201a985dbd1774ed047b8ce9a7252 — Jakob Meier 1 year, 7 months ago 3f49628
Updated post
1 files changed, 49 insertions(+), 56 deletions(-)

M feeds/projects/polarplayer-studio.org
M feeds/projects/polarplayer-studio.org => feeds/projects/polarplayer-studio.org +49 -56
@@ 1,81 1,74 @@
#+TITLE: PolarPlayer-Studio
#+DESCRIPTION: Introduction PolarPlayer-Studio
#+SETUPFILE: ../../config.org
#+DATE:<2022-06-17 Fri 10:30>
#+DATE: <2023-01-30 13:00>

* Introduction

I've owned a ROLI Seaboard for over 3 years now
and when the news that ROLI would retire the seaboard got to me
I was somewhat disappointed
\- I was probably one of the last people wait for a linux native version.

But then I realized that I'm a software developer
which means that I can build my own MIDI synthesizer software.
And this is how PolarPlayer was bord.
I've owned a ROLI Seaboard Block for over 3 years now,
and I think that ROLI is a perfect example for proprietary hardware & software:
Ever since ROLI released Equator Player, people have been asking for a Linux version [fn::https://support.roli.com/support/discussions/topics/36000004475?sort=popularity],
but that never happened,
and given that ROLI is sunsetting the Seaboard and rebranding itself as Lumi[fn::https://www.theverge.com/2021/9/2/22653749/music-startup-roli-administration-reform-luminary-lumi-keys-app]
this probably won't ever happen.

I've experienced with the idea of writing my own synth before,
but the fact, that there won't ever be an official Equator Player version for Linux,
motivated me to finally go through with it.

So I made some design mockups and started working on a prototype web app,
but gave up pretty quickly, because webmidi lacked availability in browsers.
Additionally, I was learning rust at that point in time,
and honestly preferred it over JavaScript.

* The rise and fall of PolarPlayer
Acctually I have had plans to write PolarPlayer ever since I got my seaboard
as 5D-touch[fn:1] gives you so many oportunities for gestures.
This gets us to the beginning of 2022,
when I started working on what has become my first working version of PolarPlayer.

I designed a couple of web-based UIs
but never acctually wrote code for them
because I came to realize that webmidi support
is not as widespread as I hoped.
Actually, I originally intended PolarPlayer to become a command-line application,
that you had to run from the terminal.
But supercollider, the audio processing engine, I relied on,
didn't provide the features I was looking for.
And having to start two applications just to make music got really annoying,
really quick.

So in January this year (2022)
I started working on what has become my first working version of polarplayer.
This version is written in rust
and was supposed to be run from a linux terminal,
where one was able to specify the MIDI port and the supercollider instance.
Yes, you heard that correctly,
this version did not include it's own audio processing engine
but instead relied on supercollider to do the work.
In the end the supercollider library did not provide enough functionallity
to control the synths in the way I wanted to.
So I stopped working on this cli version and archived it.
You can still check it out over on [[https://codeberg.org/comcloudway/polarplayer][codeberg]].
This led to me sunsetting the PolarPlayer CLI version,
but if you want to take a look at it,
you can still check it out over on [[https://codeberg.org/comcloudway/polarplayer][codeberg]].

* Setting sail

[[https://codeberg.org/comcloudway/polarplayer-studio/media/branch/main/screenshots/popups.png]]
#+DESCRIPTION: A screenshot of PolarPlayer Studios patchbay
#+DESCRIPTION: A screenshot of PolarPlayer Studios patch bay
#+NAME: PolarPlayer Studio Screenshot

After retiring polarplayer,
I got into rust gui libraries
and started experimenting with [[][egui]].
After retiring PolarPlayer,
I got into rust GUI libraries
and started experimenting with [[https://www.egui.rs/][egui]].

This led to me forking my old polarplayer version
and rewriting it as a gui application.
The first three alpha versions used sdl as the backend
To indicate that PolarPlayer Studio was an extended version of PolarPlayer,
I forked my own repo and rewrote most,
if not all the existing code.
The first three alpha versions used SDL as the backend
(They can also be found on [[https://codeberg.org/comcloudway/polarplayer-studio/src/commit/b418e851c3ee72f5a63f32699801f82d74edcde7][codeberg]])
But I later switched to [[][miniquad]] because I had one goal in mind:
Build a cross platform MIDI synthesizer.
But I later switched to [[https://github.com/not-fl3/miniquad][miniquad]] because I had one goal in mind:
Building a cross-platform MIDI synthesizer.

And because this new version featured a gui
And because this new version featured a GUI
I called it ~PolarPlayer Studio~

* Current status
Most of the work on PolarPlayer Studio has been done.
At least it is usable and I released the first stable version.
Most of the work on PolarPlayer Studio is completed.
At least it is usable and I released the first stable version,
titles [[https://codeberg.org/comcloudway/polarplayer-studio/releases/tag/0.3.0][Arctic circle]].

Additionally I've had problems with the current graph library
as I would really like to have different connection types,
so I'm able to map the notes to generators
instead of only being able to play with one generator at a time.
I've also added support for connector-types,
allowing for fine-tuned configurations.
Additionally, one can now save and load presets,
although, the positions are currently not persevered.

Even though I released the first version,
PolarPlayer Studio is still missing some important features.
For example I would really like to be able to save the node layout as preset
so I can build instruments and reuse them.
Unfortunately, university is currently taking up a lot of my time,
which is why PolarPlayer Studio hasn't seen updated in over 4 months now.
Hopefully I'll be able to get back to it at some point.

As of right now I'm taking a break from PolarPlayer Studio
as I'm working on my own MIDI instrument,
which is supposed to be compatible with PolarPlayer Studio.
I will probably publish a blog post one I get it done.

For now you can track PolarPlayer Studio's progress
For now, you can track PolarPlayer Studio's progress
over on [[https://codeberg.org/comcloudway/polarplayer-studio][codeberg]]

[fn:1] Not really 5D but you also have preassure sensitivity like with a piano