SuperMusicThingy 1.0.0

Hi there,

Please meet SuperMusicThingy. This is an app I’ve been working on and at its current state works really good. It’s a Terminal based app that streams random songs off of SomaFM.com.

Features

  • projectM milkdrop visualizer. ( nebula version )
  • shuffle stations.
  • save/delete/play favorites.
  • optional notifications
  • fade in/out on song change
  • config manger.
  • a CLI API backend for sending keyboard shortcuts like vol_up, shuffle, status. See SuperMusicThingy --help for details.
  • isolated volume control.

Prerequisites

Bug Reports

  • Please file bug reports here.

Known Issues

  • The SDL visual window doesn’t hear the audio even though the visuals do move around a bit. I’ve been trying to fix this but I don’t know if my sound card driver (hda) is fully supported.

Note

  • This is really my first app and mainly built with AI so be gentle!!
  • I really love the single key input logic even though I know it can be quirky at times.
  • Ideas, code improvements, fixes to to audio not being hard are all welcome. Thank you!

10 Likes

:sports_medal:
Hope to see this as a featured native app in HaikuDepot…

2 Likes

For me, at least, this is not an incentive to be particularly gentle; I simply don’t engage with the outputs from generative AI systems. Thank you for being up front about that, though.

2 Likes

Thank you! I really appreciate you and the motivation!

You’re welcome! I’ve learned so much in just the past week. And yeah, it’s not easy. I spent many hours debugging something that I thought was a code error and all it turned out to be was needing g++ -D flag to read my cmake comments. Learning one way or the other and also soaking in all the c++ syntax which I’m not use to. My main idea for this project started with a little bash script. Hopefully, it will stick. Tried years ago with python but that sunk hard when they updated to version 3, I didn’t feel like rewriting all my code.

Someone who’s not a programmer but motivated enough to follow his dream to create something native for Haiku should be appreciated. You don’t have to bash AI and its users every time, just because you don’t want to use it. Simply not using his app would be enough.

3 Likes

I considered that, and until lately I have generally just ignored it, but my opinion on what the etiquette should be is changing: if generative AI partisans feel free to post the output of a stochastic autocomplete then people who object to that should probably feel free to note their objection.

It was fine when people treated the things as the toys that they are, but people are starting to treat these things like their output is trustworthy.

It’s like the “nazi bar” analogy: if you let the generative AI users hang out in a forum without any objections, before you know it you’re just another “AI” forum. :slight_smile:

1 Like

On the one hand I like seeing more native software,but AI is really causing more problems than it solves.
I said it multiple times already,but I’m saying it again as long as there are still people who feel like they have to defend this dangerous technology.
It’s built from copyrighted content that was stolen from all around the internet,it harms the environment with its immense energy usage,it makes hardware more expensive for everyone so that poor people probably can’t even afford a new computer or phone anymore,it makes energy more expensive in regions near datacenters,it spreads false information and makes it easier to create deep fakes or phishing and thereby harm people,and their scraper bots are literally DDoSing the infrastructure of FOSS projects.
I strongly object to using this technology or anything related to it.
Also,I wouldn’t call a terminal application “native” on Haiku,since Haiku is primarily a graphical operating system.

If I follow your analogy, this forum is only for grumpy middle aged men, bashing new tech? Because in the old days, everything was better, when you had to code by hand and of course always bug free the first time.

I’m not saying AI is real AI and is being perfect. But it lowers the bar for new, young and enthousiast people wanting to be creative and being interested in contributing to Haiku. It can’t be a prerequisite that you were a BeOS OG to contribute.

If an app is being made by AI, feel free to ignore it or stop using it, but I think it’s unfair to the new and younger people.

Remember yourself, or your kids, when someone talked about using some old tech like 8” floppies or tape, VAX, etc. while you or your kids were using the latest shiny 3.5” floppies, an Amiga 500 or whatever. You can’t stop innovation and progress, even when you don’t agree with it or don’t like it.

Google searches cost electricity too and when that took of many years ago, I heard the same complaints. It will either improve or die, time will tell.

Don’t be like the 2 grumpy old Muppets please.

1 Like

I don’t have any animosity towards the original poster, and I don’t want to make anyone feel bad or attacked here.

But generative AI is a toy (as @nipos points out, a dangerous toy with some very unpleasant externalities in its operation).

I don’t make choices for anyone else, and am not out to prevent anyone from playing with generative AI. But I also don’t want to use it or its outputs, and just ignoring it when it shows up here makes it more likely that more generated software will be posted.

I certainly don’t want pseudo-random chatbot output being treated the same as the output of humans sincerely trying to produce functional code to achieve a specific purpose.

I want to trust the software I see linked here, and stochastically-generated software is fundamentally not trustworthy.

Maybe we can come up with some way that human-generated and chatbot-generated software can coexist here, maybe with subforums or tagging or something. But as long as it’s mixed together, I think it’s appropriate to note the objectionable origins of some software.

By the way, if a mod sees this: this side discussion maybe should be branched into a separate thread if the forum software can do that?

It’s not really fair to the original poster to have a whole “generative AI in tech” debate weighing down their thread.

1 Like

Agreed, but maybe you shouldn’t have started it then…

1 Like

If you put aside ethic questions about AI, there’s still a big problem. Unless, you already know what you’re doing, you won’t get an Haiku native app. It may look like it but it won’t be. If the AI could be trained only on Haiku native apps, the results would be better and the generated software would probably uses the various kits. I really doubt that it can do that taking inspiration mainly from toys for linux or windows. So even from an educative point of view, it is quite limited.

1 Like

It looks like you just engaged by replying to this topic! Oh no!

I remember when I started programming. First in QBASIC and then in Delphi. I had absolutely no idea what I was doing. The software I wrote then somehow still runs on Windows today, and I learnt a lot.

Surely at the time some people would have said that these are not serious programming languages, that I should learn C like all the big boys. And eventually, I did, but at that time I certainly wasn’t ready for it.

All valid points, but I think everyone is well aware of it.

You are calling their software “pseudo-random chatbot output”. That is extremely disrespectful. I doubt this was just asking a chatbot “hey write me some app!”.

The other issues about LLMs that Nipos mentioned are valid. But this one isn’t. If you don’t want people to feel attacked, maybe don’t attack them?

It was clearly written in the post. What else do you need?

4 Likes

I’ve had success with a pypi script called 2to3. It rewrites Python2 to Python3 code rather well.

I actually didn’t; I engaged with the human who posted it.

You’re blurring the line between the human and the chatbot here: I said nothing disrespectful about the poster, though I was disrespectful of the code generator they used and it’s output; I did not attack the poster, though I did attack the idea that LLM output should be treated as trustworthy.

A clear delineation between authored and generated software, and a flag I can set to ignore the generated material?

I don’t care if folks want to play with these things, though for the reasons @nipos listed I’d prefer that they didn’t, but (your denial above notwithstanding) their output is fundamentally untrustworthy and treating it as such has already caused multiple significant security and stability incidents. Even Amazon is recognizing this internally: https://www.tomshardware.com/tech-industry/artificial-intelligence/amazon-calls-engineers-to-address-issues-caused-by-use-of-ai-tools-report-claims-company-says-recent-incidents-had-high-blast-radius-and-were-allegedly-related-to-gen-ai-assisted-changes .

So I think it’d be appropriate to have separate subforums (and a flag in haikuports’ recipe files) for software that uses generated code so that it can be easily filtered out. That would at least let everyone make their own choice about it.

I’m relatively new here, and if this forum’s community wants to take a different view that’s not for me to say.

1 Like

Again, for what it’s worth, I had this app idea logically already made by hand from bash, that I did write myself. Countless hours making something that “I wanted”, that wasn’t available the way I wanted it.

Asking AI to help me convert it to c++ was not much more than asking it to rewrite what I already laid the foundation for.

I enjoy it, that’s really want counts. :blush:

4 Likes

It is difficult to express a fundamental difference of opinion like this in a way that can’t been seen as personally offensive regardless of how it’s intended, though I have re-read and edited my posts in this thread several times to try.

I do apologize if I have given offense.

1 Like

This is the truest thing any of us have said here. :slight_smile:

1 Like

Hi all,

Since my original post I’ve made substantial updates and fixes

  1. Fixed visual player in frozen state when viewing a sub-menu.
  2. Enable/disable fullscreen visual window when double click
  3. Fixed a crash when visual window was disabled and ‘k’ key was pressed. The ‘k’ key is when you don’t want or can’t use the mouse to enable fullscreen mode.
  4. Fixed Highest bitrate notify and buffering issue. Now all bitrates work as should.
  5. Added various global hot keys so if your in a sub-menu you can press ‘s’ key and start shuffling music without having to return to the main screen first.
  6. Updated the top menus to reflect which menu/sub-menu your in
  7. Fixed the visual preset refreshing logic.
  8. Added global hot keys to the visual window. For example…
    • While in fullscreen mode you can shuffle a visual preset with the ‘v’ key, shuffle a song with the ‘s’ key, change volume with the +/- keys, and mute ‘m’, without having to return to the Terminal main menu first.
  9. Tried but no success to implement an overlay over the visual window of the current song/title/description etc, but seems projectm has hard-coded some of the legacy GL features out of their most latest code. I may try to investigate that another time to see about other options.

Here’s a nice screenshot of of the visual window in the background, the Terminal running the app, and weechat in another tab.

5 Likes