Forum comments in chronological order

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

May 2021

PO-2x

lft
Linus Åkesson
Tue 4-May-2021 08:49
I am curious how to go about generating the robot voice on the PO-28. (demo here: https://www.youtube.com/watch?v=KloyDjmU2dQ&t=1266s). Also do you know if this feature made it into the PO-128 that was released a few months ago?
Thank you.

I'm afraid that voice recording wasn't created on the PO-28, nor the PO-128. They don't have that feature.
Anonymous
Wed 5-May-2021 21:42
Thank you for clearing that up. Your work is admirable regardless (PO-128 is my favorite PO so far)! You seem like an exceptional polymath, may you continue to bridge the gaps between worlds.

lft wrote:

I am curious how to go about generating the robot voice on the PO-28. (demo here: https://www.youtube.com/watch?v=KloyDjmU2dQ&t=1266s). Also do you know if this feature made it into the PO-128 that was released a few months ago?
Thank you.

I'm afraid that voice recording wasn't created on the PO-28, nor the PO-128. They don't have that feature.

Pushing Onwards: Return of the Chipophone

Anonymous
Wed 12-May-2021 19:49
So nice to hear one of my favorite songs played by Chipophone! I was wondering, could another favorite of mine be played with it? ..the decade of dekadence by britelite: https://www.youtube.com/watch?v=nliD-_kqH7I

A Mind Is Born

Anonymous
Thu 13-May-2021 02:23
It would be an impressive demo even at 4k. Squeezing it down to 256 bytes is a technical tour-de-force and thank-you for the detailed explanation.

The Impossible Bottle

Anonymous
Fri 14-May-2021 19:22
Linus, just finished The Impossible Bottle and wanted to tell you how much I loved it! All the aha moments landed perfectly and I found the world charming and delightful. Congratulations on the win!

-Ward C

Music For Microcontrollers

Anonymous
Thu 20-May-2021 00:09
Awesome music!

A Mind Is Born

Anonymous
Thu 20-May-2021 08:41
I have loved this for many years and glad to see it is still getting love from publications. Such great work Linus.

Extended re-mix - pO2112,127:rU
-dave

The Impossible Bottle

Anonymous
Thu 20-May-2021 21:30
Thank you for a touching, sweet, on-point game for 2020. It had good puzzles and an excellent plot/story/metaphor. It was worth every minute I spent (there were a lot of them, I'm embarrassed to say).

A Mind Is Born

Anonymous
Fri 21-May-2021 23:33
I somehow felt like when I think about the fabric of the universe.
It must be as purely simple as your code.

That's poetry — and I admit I understood probably 15% of your (extraordinarily thorough) explanation.

Thanks!
Anonymous
Sun 23-May-2021 07:00
The year is now 2021, and this was just featured on Hackaday. And this 49 year old kid who grew up with a PET and a C64 is absolutely delighted to see it.

This is an amazing piece of art. Thanks for the detailed description too. Now I need to play around with LFSRs and note tables for a while...

Parallelogram

Anonymous
Sun 23-May-2021 18:38
It saddens me you still haven't released the music in its original format...
Yeah, even something as dumb as MIDI would be nice ;-;

A case against syntax highlighting

Anonymous
Tue 25-May-2021 06:41
You've fucked many fake developers who always think syntax highlighting is the key to increase their productivity.

Music For Microcontrollers

Anonymous
Thu 27-May-2021 04:17
Wow! Everything about this great. My girlfriend turned me on to your C64 + spring reverb work on YouTube and I loved hearing you turn a computer beep into a cathedral organ. As I wander your website, your projects are deeply inspiring.
Anonymous
Thu 27-May-2021 16:20
I appreciate a lot your work!!

Bit banger

Anonymous
Sat 29-May-2021 17:28
this is great. the stuff with the computer chips is also terribly cool.

Music For Microcontrollers

Anonymous
Sun 30-May-2021 14:19
This is better than originals, but they are good too. It's like desiring to hear real SID output because of all noises and distortions presented.

Java challenge

Anonymous
Sun 30-May-2021 17:22
The first argument is assigned to y, the second is thrown into the recursive function, and x serves as an accumulator.

The recursive function checks if the bit at 2^30 (0x40000000) is set in the input number, and then multiplies it by 2 (same as << 1), and subtracts 1 from the passed in counter (which is set to 30) by subtracting it divided by itself. This will fail once the counter is 0 (divide by zero), triggering a stack trace, which prints out the order of the calls in reverse. Depending on the bits set, the displayed line will be different. line 5 if 0x40000000 is set, line 7 otherwise. Effectively, this creates a binary readout of argument 2, which the catch statement parses by turning the stacktrace into a byte sequence and looking for the values 0x35 and 0x37. If 0x37, y multiplies by 2 (same as << 1). If 0x35, y is added to the accumulator.

Since there is no break between these cases, both will execute in the 0x35 case, so effectively, either x increments by y *and* y shifts left by 1, or y shifts left by 1 and x stays put.

This effectively multiplies the first and second argument, but only if the bits in the second argument are all contiguous (and this is the part that doesn't quite make sense).

For example, `java Main 3 15` will set y to 3 and produce a "binary printout" of 15 in the form of stacktraces (55557777777...). Accumulator starts at 0, has 3 added to it, 3 becomes 6. has 6 added to it, 6 becomes 12, etc. 3 + 6 + 12 + 24 = 45. All well and good.

But this breaks the second you introduce a number with "holes" in it, like 9, or 5, or 13. `java Main 2 9` will result in 2 + 0 + 0 + 16 (because y doesn't stop being added to itself), which should print out 18. But it doesn't. It prints out 2. In fact, when the second number *isn't* a (2^n)-1, it invariably prints 2 regardless of the first and second argument, which based on the behavior, seems like a bug somewhere in the java toolchain.

But what do I know, I'm just a C programmer looking at a Java program.
Anonymous
Sun 30-May-2021 17:26
The first argument is assigned to y, the second is thrown into the recursive function, and x serves as an accumulator.

The recursive function checks if the bit at 2^30 (0x40000000) is set in the input number, and then multiplies it by 2 (same as << 1), and subtracts 1 from the passed in counter (which is set to 30) by subtracting it divided by itself. This will fail once the counter is 0 (divide by zero), triggering a stack trace, which prints out the order of the calls in reverse. Depending on the bits set, the displayed line will be different. line 5 if 0x40000000 is set, line 7 otherwise. Effectively, this creates a binary readout of argument 2, which the catch statement parses by turning the stacktrace into a byte sequence and looking for the values 0x35 and 0x37. If 0x37, y multiplies by 2 (same as << 1). If 0x35, y is added to the accumulator.

Since there is no break between these cases, both will execute in the 0x35 case, so effectively, either x increments by y *and* y shifts left by 1, or y shifts left by 1 and x stays put.

This effectively multiplies the first and second argument, but only if the bits in the second argument are all contiguous (and this is the part that doesn't quite make sense).

For example, `java Main 3 15` will set y to 3 and produce a "binary printout" of 15 in the form of stacktraces (55557777777...). Accumulator starts at 0, has 3 added to it, 3 becomes 6. has 6 added to it, 6 becomes 12, etc. 3 + 6 + 12 + 24 = 45. All well and good.

But this breaks the second you introduce a number with "holes" in it, like 9, or 5, or 13. `java Main 2 9` will result in 2 + 0 + 0 + 16 (because y doesn't stop being added to itself), which should print out 18. But it doesn't. It prints out 2. In fact, when the second number *isn't* a (2^n)-1, it invariably prints 2 regardless of the first and second argument, which based on the behavior, seems like a bug somewhere in the java toolchain.

But what do I know, I'm just a C programmer looking at a Java program.

Never mind. I corrupted the code somehow. I tried it again with a fresh repl.it and it works as expected, i.e. Main 2 9 prints 18. So I understand the program perfectly well :)
-Braden