Of all the programming languages that I had to learn over the years, my favourite is still Pascal. Many programmers hate Pascal because it has such a rigid structure, but my Pascal code has much fewer bugs than anything I write in any other language, exactly because that rigid structure keeps me from making a lot of stupid mistakes.
#pascal #programming

for now the last princess magical girls in the making <3

WIP
Rapunzel <3

#disney #fanart #magicalgirl #WIP #rapunzel #tangled #instaart #art #illustration #digitalart #pascal #pan #flower

Heute Abend nochmal zum Abschluss meines Urlaubs eine ganz starke Retro Brise: #TurboPascal. Lang ist's her, dass ich damit mal unterwegs war. Im Bild sieht man ein Quellcode Teil von einem Programm, das ich gerade archiviere. Ich muss mal schauen, ob ich den Originalautor noch zu fassen bekomme. Bisher gibt es darüber jedenfalls _gar nichts_ im Netz. #retro #retrocomputing #pascal #lazarus
I was intending this to be a blog post, but I guess it'll be a long Fedi post instead since I have a large char limit on my instance :-P Time to explain what I've been doing lately!

Basic, new music player: "Aika". I've named it after the character in Agent Aika because I like that anime and I'm just a lewd girl like that. If you know me well, you should not be surprised. Ask me who my Reika program is named after sometime...

Anyway, Aika is
NOT a replacement for #Benben (that ain't going away, I love it too much). I gotta emphasize that. Benben will continue. Aika is simply another option for people. This one is special in that the UI is entirely based around #ZeroMQ sockets. So imagine having a local player, running like you see here, but then you can securely connect additional "Remote UIs" to it over a network. These can just connect/disconnect whenever you need, however many you want, and Aika will just keep doing its thing. Kinda like MPD, but easier to use, and you always have a local interface like you see here, never just an invisible process in the background. I call these "Remote UIs". Extremely useful for someone like me who goes around the house to multiple computers while wearing Bluetooth headphones... but it could technically also stream the audio over the network in the future, too. Anyway, I call this ZeroMQ UI stuff the "Remote UI Protocol", and it's Aika's main special thing.

Also, unlike Benben, this one will allow you to add and remove files while it's running through a built-in file browser. So whereas Benben was designed to be like a super sexy version of mpg123 from the start, Aika will be more like a terminal version of Audacious. Sorta. It'll still have its own feel.

Oh, and Aika uses plugins so that support for audio formats, playlist formats, backends, etc. can be changed without changing Aika itself (herself?). So that's another difference. They're just .so files.

The video here just shows a
temporary UI that I'm using while I build out the Remote UI Protocol and get things working. It'll look different and more complete in time. This UI here is not yet a true Remote UI, it's entirely local and built into Aika (the "Local UI"), but it is using the Remote UI Protocol over ZeroMQ internally while I design it. Once I have that protocol finished and implemented, I'll convert this Local UI to not use ZeroMQ for some things (for latency reasons), then implement a true example Remote UI that mimics Benben's interface and can run on an entirely separate machine (even across the world if you want).

Lastly, Aika is written in Object
#Pascal, not #CommonLisp. So whereas Benben has a 106mb binary (uncompressed, give or take), Aika currently has a 900kb binary. Whereas Benben uses 133 mb of RAM at runtime to play the Quake 2 soundtrack in FLAC format, Aika currently uses 5mb. Also, Aika has been using about half to one quarter less CPU than Benben so far.

It'll be quite a while until Aika is ready for a v0.1.0 release, but I've got the beginnings going on here. The code will be a bit messy at first until the protocol designs solidify, the UI is very incomplete, there's no resampling yet, and it crashes/deadlocks sometimes... but it's at least able to play albums in FLAC format right now
https://fossil.cyberia9.org/aika/

As for Benben.. I blasted through the milestones for v1.0.0 a lot quicker than I expected, so expect it out sooner than later. Maybe mid summer.

EDIT: Oh, and Aika is specifically targeting any POSIX-compatible OS. I'm actually testing things fairly regularly on
#Haiku to ensure it works there in particular.

RE: https://oldbytes.space/@thelastpsion/116345290344668595

And the results are in!

  • Pico C
  • Rust
  • Free Pascal
  • Joint with Pico C++, MicroZig and Yarg.
  • So, what am I going to do? Well, I'm leaning towards porting the existing Arduino C code to the Pico C SDK. I'm currently using one class for encapsulation and abstraction, but I could replace that with structs and static functions. I'm not a great C programmer, but I'm pretty comfortable with it, so it makes sense

    However, before I do that, I see a bigger challenge of getting a good setup without using VS Code. I've been using #NeoVim for a while now, and I'd like to get a comfortable setup using that on #Linux.

    So, I'm going to try to build Blinky projects for at least Pico C, Rust and Free Pascal, using Linux and NeoVim. Hopefully this will give me a better feel for how well these languages actually suit me. I've never done any Rust before, either, so that's going to be quite the learning curve!

    If I have time, I'm going to give Yarg a go, too, because I think the premise is really cool. If I'm on a roll, I'll try #MicroZig too.

    And if I really feel like I have the capacity, I'll port the code to one of these other languages.

    I'm acutely aware of all the other projects I've given myself to do, such as the SIBO SDK and other small Psion-related projects, not to mention $dayjob and $reallife. So we'll see how things go!

    #Pascal #FreePascal #ObjectPascal #RustLang #YargLang #RaspberryPiPico #PiPico #PiPico2 #RP2040 #RP2350