Hi,
wie schon im Titel geschrieben suche ich eine Library/Klasse zum abspielen von SID Music.
Gibt es sowas überhaupt?
Viele Grüße
Hawk78
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von Endurion am
Hi,
wie schon im Titel geschrieben suche ich eine Library/Klasse zum abspielen von SID Music.
Gibt es sowas überhaupt?
Viele Grüße
Hawk78
Danke für den Tipp, ja xna ist leider nicht mehr aktuell...
Das sollte ja recht zügig umbaubar sein. Da wird im Grunde ja nur ein Audio-Element mit Eingabe-Buffer benötigt.
Auf welche Sound-Library sollte das denn gehen?
Hier gibts bestimmt nützliche Infos für Dich.
Also ich hab mich auf keine bestimmte Library festgelegt. Eine Lösung für vb.net wäre aber schon gut.
Ich habe mir mal die bassmod.dll vorgenommen. Mp3 lassen sich damit abspielen. Sid gehen leider nicht direkt. Es soll aber wohl Addons geben, die das wiederum können. Ich hab aber leider kein funktionierendes Beispiel dazu finden können.
BASSMod ist speziell für Tracker-Musik gebaut (siehe http://www.un4seen.com/, da ist übrigens auch eine .NET-Library dafür).
Allerdings wird man da wohl nicht so nicht an den Buffer kommen.
Es gibt auf der Seite auch die BASSASIO library, die würde vermutlich passen (und hat auch eine .NET-Library). Da ist allerdings eine nicht kostenfreie Lizenz dran.
Was soll es denn mal werden? Ein SID-Player der in WAV (oder MP3) konvertieren kann und kein Problem mit der Spieldauer hat?
Ich möchte gerne einen Sid Player in ein .net Projekt integrieren. Eine Konvertierung ist nicht vorgesehen.
Schade das dieses Format doch nicht so einfach abgespielt werden kann wie tracked music...
Könnte man nicht in einem 64er Emulator schauen wie sowas zu machen wäre?
https://github.com/meonwax/c64-emulator-csharp
Auf https://github.com/nicolacimmino/SIDMIDISynth schreibt der von einer SID emulator library.
Danke für die Infos. Ich denke nicht, dass es so einfach ist ein Teil aus dem Code zu extrahieren und zum Laufen zu bringen. Thematisch möchte ich auch gar nicht so tief in die Erstellung einer Library reingehen sondern lieber eine funktionierende integrieren. Aber anscheind gibt es da derzeit wohl nichts fertiges.
Der zweite Link beinhaltet ein Bastelprojekt zu einem Arduino um einen SID auf der Hardware zu emulieren. Hieraus lässt sich leider auch nicht so einfache Library ableiten.
Thematisch möchte ich auch gar nicht so tief in die Erstellung einer Library reingehen sondern lieber eine funktionierende integrieren.
Eine Library also eine DLL unter .net ist ganz einfach zu machen, unterscheidet sich nicht groß von einer Form. Wenn Du auf eine fertige DLL zurückgreifen willst dann sollte es auch mit C# gehen, aber da mußt Du selbst mal Google bemühen. Das ist aber nicht ganz einfach zu machen.
Ich bastle gerade rum, hab mir so eine WaveOut-Library geschnappt, aber irgendetwas passt da mit dem Timing noch nicht.
So, nachdem ich drei verschiedene Sound-Libraries durch habe, habe ich meinen eigenen Fehler gefunden und jetzt klappt das.
Auf http://www.georg-rottensteiner…misc/sidplayer-naudio.zip findest du ein Projekt, dass dir eine Dll erstellt. Da ist ein Beispielprojekt (auch C#) bei, dass einen simplen SID-Player darstellt.
Ist alles nur irgendwo runtergeladen und zusammengeklebt.
Für dich interessant sind die Binaries unter sidPlayer\bin\Release. sidplay.dll enthält den eigentlichen Player, NAudio.dll wird aber als Abhängigkeit auch benötigt.
Das Abspielen sieht unter C# so aus:
SharpSidPlayer player;
SidTune tune;
using (FileStream file = new FileStream(tb_filename.Text, FileMode.Open, FileAccess.Read))
{
tune = new SidTune(file);
}
if (tune.StatusOk)
{
player.Start(tune);
}
Super, vielen Dank - schau ich mir mal an.
Dank eines Hinweises habe ich die zugrundeliegende Lizenz (GPLv2) dem Paket beigepackt, neues Archiv ist hinter dem gleichen Link hinterlegt.
Vielleicht räume ich den Sauhaufen da nochmal auf und lege das ordentlich auf Github ab.