ALUCIAN™ avatar

Musik Spieler /// Version 0.4 Spielt immer noch keine Musik. :-)

alucian

Published: 05 Feb 2026 › Updated: 05 Feb 2026Musik Spieler /// Version 0.4 Spielt immer noch keine Musik. :-)

Musik Spieler /// Version 0.4 Spielt immer noch keine Musik. :-)

Start / Stopp / Weiter: Pfeil Rechts / Zurueck: Pfeil Links / Laut / Leise

Abspielliste

Ausknopf

Musikstueck einziehbar in die Abspielliste.

Musik nimmt immer den Musik Spieler fuer das Abspielen von Musik ohne Frage nach etwas anderem.

Was der alles nicht kann, wird ihn Auszeichnen. ;-)

Technisch, will ich ihn wiederum so dermaßen gestalten, das der Ueberall laeuft, auf einer Semmel soll der Laufen. :-)

Ich bau ein Betriebssystem habe ich gesagt und noch mehr.

Das muss was auf die Ohren auch geben koennen, unter anderem.

Einfachst, ohne Ballast. Wer Ballast sucht, kann sich ja schon lange wo anders austoben. :-)

Salve

Alucian

#include fstream>
#include iostream>
#include cstdint>
#define MIN_SAMPLERATE 44100 //MinimumGuteSoundDiktatur
#define MAX_SAMPLERATE 192000 //MaximumHighEnd
#define BUFFER_SIZE 4096 //StatischerPufferKleinCachegroßKnacken
#define MAX_PLAYLIST 256 //BegrenzungListeRAMExplosion
#define MIN_PLAYLIST 0 //Minimal0oder1
#define MIN_VOLUME 0 //Mindestlautstaerke
#define MAX_VOLUME 100 //SchutzÜbersteuerungKnarzen
#define LIST_FILENAME "MusikSpielerListe.txt"
//StrukturWAVKopfZEILEN)
#pragma pack(push, 1)
struct WAVHeader {
char riff[4]; //RIFFs
uint32_t fileSize;
char wave[4]; //WAVE
char fmt[4]; //fmt
uint32_t fmtLen;
uint16_t formatTag; //1=PCM
uint16_t kanaele;1,2 //1=Mono2=Stereo
uint16_t channels;
uint32_t sampleRate; //44100
uint32_t byteRate;
uint16_t blockAlign;
uint16_t bitsPerSample; //24Bit
char data[4];
uint32_t dataLen;
#pragma pack(pop)
class MusikSpieler {
private:
bool isPlaying = false;
float volumeMultiplier = 0.25f;
float targetVolume = 0.15f;
float audioBuffer[BUFFER_SIZE];
const char* playlist[MAX_PLAYLIST] = {nullptr};
int volume = 25;
int currentTrack = 0;
unsigned int sampleRate = 44100;
//Bruch
bool loadWAV(const char* filepath) {
std::ifstream file(filepath, std::ios::binary);
if (!file) return false;
WAVHeader header;
file.read(reinterpret_cast<char>(&header), sizeof(WAVHeader));
if (std::string(header.riff, 4) != "RIFF" || std::string(header.wave, 4) != "WAVE") {
return false;
}
this->sampleRate = header.sampleRate;
return true;
}
public:
//Steuerung
void key_Space() { toggle(); } //Start/Stopp
void key_Right() { next(); } //Weiter
void key_Left() { back(); } //Zurueck
void key_Up() { setVolume(volume + 5); } //Lauter
void key_Down() { setVolume(volume - 5); } //Leiser
//SCHNITTSTELLE
void setQuality(unsigned int rate) {
if (rate >= MIN_SAMPLERATE && rate <= MAX_SAMPLERATE) {
this->sampleRate = rate;
}
}
//PLAYLIST
void start() { isPlaying = true; }
void toggle() { isPlaying = !isPlaying; }
void next() {
if (currentTrack < MAX_PLAYLIST - 1 && playlist[currentTrack + 1])
currentTrack++;
}
void back() {
if (currentTrack > 0) currentTrack--;
}
void setVolume(int v) {
if (v < 0) v = 0;
if (v > MAX_VOLUME) v = MAX_VOLUME;
this->volume = v;
targetVolume = (float)v / 100.0f;
}
void addTrack(const char
path) {
for(int i = 0; i < MAX_PLAYLIST; i) {
if(playlist[i] == nullptr) {
playlist[i] = path;
break;}
playlist[MAX_PLAYLIST - 1] = nullptr;
if (currentTrack >= index && currentTrack > 0)
currentTrack--;
}
}
void removeTrack(int index) {
if (index < 0 || index >= MAX_PLAYLIST) return;
if (playlist[index] == nullptr) return;
for (int i = index; i < MAX_PLAYLIST - 1; i
) {
playlist[i] = playlist[i + 1];
if (playlist[i] == nullptr) break;
}
playlist[MAX_PLAYLIST - 1] = nullptr;
if (currentTrack >= index && currentTrack > 0)
currentTrack--;
}
void savePlaylist() {
std::ofstream file(LIST_FILENAME);
for(int i = 0; i < MAX_PLAYLIST && playlist[i]; i)
file << playlist[i] << "\n";
}
//TREIBERVERWALTUNG
void processAudio(float* deviceOutput, float* decoderInput, int length) {
if (!isPlaying) {
for(int i = 0; i < length; i
) deviceOutput[i] = 0.0f;
return;
float sanftesSample = decoderInput[i] * volumeMultiplier;
}
for(int i = 0; i < length; i++) {
//AntiKnackRampe
volumeMultiplier += (targetVolume - volumeMultiplier) * 0.001f;
float sample = decoderInput[i] * volumeMultiplier;
if (sample > 0.95f) sample = 0.95f;
if (sample < -0.95f) sample = -0.95f;
deviceOutput[i] = sample;}
}
}
};

// Philosophie:
// Festgelegte Grenzen
// Maximale Kompatibilitaet und Qualitaet!
// OPEN SOURCE/ FREE FOR ALL AND EVERYBODY :-)
// Name: Musik Spieler
// Version: 0.4 WAV Only Version
// Funktion Bedingungen
// Start: Leertaste, oder Starttaste Geraet
// Stopp: Leertaste, oder Stopptaste Gereat
// Weiter: Pfeil Rechts
// Zurueck: Pfeil Links
// Laut Pfeil Hoch, oder Lautertaste Geraet
// Leise Pfeil Runter, oder Leisertaste Geraet
// Absolut abstrahiert arbeiten!

Leave Musik Spieler /// Version 0.4 Spielt immer noch keine Musik. :-) to:

Written by

Interdisziplinaere Forschung ||| SYSTEMSYNTHETIKENTWICKLER ||| WELTENNENNER // Hive Bienen Gruppen Bio Human Compute Meta Programm Entwickler /// (Zitat bester bisheriger Kritiker: " Oh Nein, nicht schon wieder so ein System, das Millionen Hungertote verursacht!") Es soll moeglichst Effizient und Selbstragend sein, sonst baue ich es nicht. Außerdem, ist es nur ein kombiniertes Abbild desssen, was wir unsere heutigen Systeme nennen, mit ein paar Ideen aus dem Altertum und neuen Zeitgeistern der Geschichte und Phantasie. Sie koennen nur Funktionieren, wenn man sie Benutzt. Denn Sie sind in sich Selbst Verbessernd geplant. AI+Blockchain Vibe Coder with Long Therm Home Mining Experience. BlockWorkOrange, CommentCoin and Timechainbased Lottery Democracy Founder / Schäuferla / Offene Standarts Entwickler / Lieber mache ich euch Angst vor einem Krieg, als Angst mit euch im Krieg haben zu muessen! / Spezialist für Grafikkarten und Zeitkettensysteme auf offenen Netzwerken und Plattformen ///Direkte zeitkettenbasierte Losdemokratie /// Die werden sich noch Umschauen!--- Nach ihrer neuen Lieblingsdistro.^.^ Arch Garuda by the way. :-) /// Offizieller Gefährder! Vorsicht! <<<---Made in Germany /// Der will nur Reden^^ /// Stabilität und Sicherheit --- Dafür, stehe ich mit meinem Namen / Zeitkettenarchitekt / Bitcoiner sagen es braucht ASICs, ich sage es braucht keinen Bitcoin, denn ich war Bitcoiner, bevor es ASICs gab!. :-) / AIMOVESPEECHTRANSLATOR / XBTGPUARC / XBTGPUALL / XBTAPUALL / XAIGPUARC / XAIRAMTST / ARCECOTMR / Spirituell, aber NICHT RELIGIÖS!!! / Schlange / FinTech-Spezialist / Vor und Nachweltdenker / Vergebung/ Kommentator / Parteilos! / NICHTWÄHLER! / Klopapierinvestor!!! / An und Ausnutzer / Shitresistent und ewig Renitent / Wer Lesen kann, ist Klar im Vorteil /// Bitcoin is Dead, you just do not know why :-P NO FINANCIAL ADVICE!!! /// MONERO / HIVE / BTG 比特黄金 / #CC / Only manual worker /// ALU´S MIND FACTOR :-D / "Only" Mineable Dude Zhash 144_5 Freak / Satire / Kneipenwirt / Allerlei geistiger Dünnpfiff / German Community Worker / Hive-Social-Engineer / Kohlmeise / HiQ- Schreiberling / Feuerhase/ Threecoiner / Rasierklingentänzer / Blockwork Orange: Selbstständiger-Miner und Schriftsteller / Change Manager / die Nadel / Blockchain-Architekt / Ideengeber / Ideennehmer / Schlichter / KI-Resistent / Erster Gesamtmenschheitstroller aller Zeiten / Erster im Grundlage dafür Schaffen/ The Key´s you will find in my comments and replies. ;-) PLEASE DO NOT: AUTOVOTE ME, COPIE ME / Eberesche / Zauberer mit eigener Denkfabrik / FOLLOW ME without REFLECTION / LIKE ME FOR LIKEing YOU / BE YOURSELF. NOT JUST A COPIE OF A COPIE FROM OTHERS / Gehirn-O-Mat-Betreiber, und EiweißComputer Liebhaber/ Visionär ohne Sinn und Verstand / Grundsatzregler / Quellenhasser / Euroverliebter / Inspirativer Transformator / Blasenplatzenlasser / CO²-Produzent / An und Aus- Denker / Genderverblödeter / ...ismus(s) Nichtmüsser und Alleskönner / Glaubenskrieger für den Unglauben / VerschwörungsEsotheriker*innen / Sascha Rene Eberth .V. // Neubert.M. / Anti-Anti-Verfechter / Popelfresser / Blockchainhasser / Primitivrealist / Bildungsfaschist / EVA-Liebhaber / Some day everybody knows who i was. But i am not sure somebody know what i am today. Staatenloser / Radikal / Mensch mit Unmenschlichkeiten / Rush-Gott / ÜberLeber / Bösewicht / Ungefragter / Minderheitenunterdrücker / Ex- Soldat / Weltbilderforscher / Wichtigtuer / Miner mit Herz / Wortverdreher / Immer noch Monologisierer Einzigartiger Dualist /Geduldiger / Geduldeter / Geiziger Hals / Sozial Media Hasser / Lebemann*innen / Luftschlossbauer / Paralellgesellschafter / @Commentcoin -Erfinder / Wortspieler / Leidenschaftlicher Kommentarspammer / Intoleranztolerierer / Schönling mit Hässlichkeiten / Klugscheißer, Dummabwischer / Blockwärter / Fanatiker / ASIC Resistent / Weltveränderer / Echthasser / Maximalist / Toxisch / Untoxisch / Neutral, aber nicht Objektiv / Nichtimmersomeiner / Verborgener Massenadaptierer /Analog und Digital Sozialanalyst /Wortschöpfer / Beschützer vor den bösen Männern / Ehebrecher auf Zeit / Vernunftsbasierter Wahnsinniger /101/ Informationskrieger / Arbeitsloser ohne Zeit, wegen zuviel Arbeit / Wortführer ohne Plan / Kunstfigur / Fleischfresser / Menschenfreund und Menschenfeind / Unlustiger Scherzkeks / Paradoxum Abstraktum Kuriosum/ Einzig wahrer HamsterGott / Giertolerant / Sporadischer Kiffer mit Kleingärtnerambitionen / Es gibt Menschen, die müssen nicht mal Kiffen, und Verblöden trotzdem vor dem Hanf. / Tausendsascha / Aspie / Dumm, weis sich aber zu Helfen / Kritiker ohne Kritik / Den Richtigen in die Suppe Spucker / Zukunftsnachrichtendienstleiter / Blockchainfütterer / Unerreichbarer Individualist mit Gemeinschaftssinn / Verkappter Philosoph / Todessehnsüchtiger / Antiautoritäre Autorität / Arschkriecher mit Gleitgel / Dikatator von Deutschland und der Welt / Halbhirnnutzer / Zcash- und Judenliebhaber / Lichtbringer / Dabei sein, oder nicht Dabei sein. Das ist des Miners Motto / Morgenstern / Selbstdarstellungsmeister / Ethereumhasser/ Computerhardwarefreak / Meinungsdiktator / Entkräfter / Entmachter / Selbstbescheiser / Erfinder von Unerfundenem / Arbeitsplatzwechsler / Unterjochungsspezialist / Psychologe mit Schäden / Abgebrochener Kaufmann / Drogenfreiheitsverfechter / Spielzeugzerstörer / Kapitalist ohne Kapital / Maximaler Minimalist / Student der Systeme / Bester Mann / Ewig Unwissender / Prediger mit inhaltslosen Inhalten / Wunde(n)rheiler / Seelsorger / Dicht(er) / Vielsprecher / Weltverbesserer / Schlechtmensch / Zwanghafter Monologisierer / Stupser / Double Tip for Tap Spieler / Reflektionär / Gedankenleser / Gedankenschreiber/ Wortstudent / EvolutionsTHEORIE Verweigerer / Sprachenverkrüppler / Jedermann und Niemannd / Regelbrecher / Minarchist / Lesehamster / Gefährder der Gefahren / Echtschreibassi / Moralapostel / Change Manager / Nörgler / Detailsich(t)er / Erst Bär, dann Bulle... / Seelenträger und wenig vieles mehr... Für mich, - Wesentlich... Danke für das Lesen und Schreiben. Header from: https://twitter.com/blauesLichtchen?s=20

Read more #deutsch posts


Best Posts From ALUCIAN™

We have not curated any of alucian's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From ALUCIAN™