Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Grafixfan

Anmeldungsdatum: 24.03.2007 Beiträge: 17 Wohnort: Bayreuth
|
Verfasst am: 20.05.2007, 14:20 Titel: Töne/Musik mit FreeBasic möglich? |
|
|
Liebe Forumisten,
nachdem Ihr mir so super bei hochauflösenden Grafiken geholfen habt, hier die nächste neugierige Frage:
kann man mit FreeBasic irgendwie die Soundkarte ansprechen und auf diese Art mit einem FreeBasic-Programm Musik berechnen/erzeugen?
Mit Turbobasic ging's über den Befehl "sound" auf die einfache Tour über den internen Pieps-Lautsprecher des PC ... klang aber sehr dünn und war nur einstimmig. Und meine Tuba wird mir langsam zu schwer!
Wenn's nicht mit FreeBasic geht, dann vielleicht mit C+ ö.ä.?
Kann da jemand was dazu sagen?
Danke und viele Grüße
Grafixfan
(auch Musixfan: immer nur Bilder anschauen verödet das Gehör) |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 20.05.2007, 14:43 Titel: |
|
|
Es gibt viele möglichkeiten mit FreeBASIC die Soundkarte anzusprechen, ich erinnere mich unter anderem an alte QBasic beispiele dafür.
Einfach und schnell wäre zB die möglichkeit über die Winmm,
ein beispiel dazu gibts auf www.freebasic.de oder im examples verzeichniss
examples\Windows\winmm
Eine weitere recht einfache möglichkeit wäre die verwendung von FMod
www.fmod.de
ein beispiel dazu gibt es glaube auch bei den examples
examples\sound
das sind allerdings nur zwei beispiele von vielen möglichkeiten die Soundkarte anzusprechen, Volta hat hier im Forum zum Thema DirectSound bereits sehr gute vorarbeit geleistet Winmm und DirectSound _________________
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 20.05.2007, 14:52 Titel: |
|
|
Ich verwende die Bibliothek fbsound, das funktioniert auch ganz gut. Bisher binde ich damit aber einfach nur MP3s ein. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.05.2007, 15:03 Titel: |
|
|
"richtig" MIDI geht auch... über die API-Funktionen von winmm... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.05.2007, 18:29 Titel: |
|
|
csderats hat Folgendes geschrieben: | man müsste um "richtig" mit noten zu spielen MIDI verwenden... oder für jede Note ein mp3 oder wav machen, und dann sone art scriptinterpreter^^ |
was dann aber MOD-Dateien entspricht, die man mit FMOD und BASS (www.un4seen.com) abspielen kann. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.05.2007, 18:35 Titel: |
|
|
solltest ihm dann aber auch sagen wie man die macht xD
google mal nach OpenMPT oder ModPlug Tracker... (OpenMPT dabei bevorzugt von Jojo, auch wenn ich keinen Unterschied sehe... xD) |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.05.2007, 18:48 Titel: |
|
|
keinen unterschied musst dir mal die neuesten releases ziehen außerdem: modarchive.com  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Grafixfan

Anmeldungsdatum: 24.03.2007 Beiträge: 17 Wohnort: Bayreuth
|
Verfasst am: 20.05.2007, 19:15 Titel: |
|
|
Da ist ja schon einiges zusammen gekommen ... ich werde mich drauf stürzen. Als blutiger Programmierlaie tue ich mir im Moment aber noch verdammt schwer und hoffe auf weitere und detaillierte Hilfe.
Die Idee mit den mp3 ist nicht schlecht, obwohl man dann nicht nur für jeden Ton, sondern auch für verschieden lange Töne mehrere Files braucht? Oder geht's so schnell, daß man mehrere gleiche mp3 hintereinander als einen durchgehenden, längeren Ton wahrnimmt?
Was mir vorschwebt, ist, z.B. die Ergebnisse der Chaosmathematik (siehe auch die Projekte "gerechnete Grafik") über einen Rechenalgorithmus in Noten oder Frequenzen umzuwandeln, für ggf. mehrstimmige Lieder durch einen ebenfalls zu programmierenden Harmonielehrefilter zu jagen und von der Soundkarte automatisch abspielen zu lassen ... dann bräuchte man nur noch hinhören und genießen oder sich von Grauen geschüttelt abwenden (schlimmer als bei Florian Silbereisen kann's aber wohl nicht werden).
Wenn ich mir die chaotischen Grafiken so anschaue, könnte mit einer gewissen Wahrscheinlichkeit vielleicht doch was Interessantes rauskommen???
Getrieben von unstillbarer Neugier (und der Ehefrau) grüßt Euch
Euer Grafixfan (blöder Name, jetzt paßt er nimmer) |
|
Nach oben |
|
 |
vspickelen

Anmeldungsdatum: 12.06.2005 Beiträge: 13 Wohnort: Holland
|
|
Nach oben |
|
 |
Grafixfan

Anmeldungsdatum: 24.03.2007 Beiträge: 17 Wohnort: Bayreuth
|
Verfasst am: 22.05.2007, 18:42 Titel: |
|
|
Habe den FreeBasic-Quellcode auf der Seite http://ca-pieces.sourceforge.net/index.html runterkopiert und gestartet: das Programm leistet auf den ersten Blick, was ich wollte - diesen Code hätte ich selber nie hinbekommen.
Werde in der nächsten Zeit versuchen, in den Code mein Chaos und vielleicht etwas Harmonie einzufügen und auch die anderen Vorschläge probieren.
Sobald was Gscheit's rauskommt - das kann aber dauern - werdet Ihr es als Projekt hören, ob Ihr wollt oder nicht! |
|
Nach oben |
|
 |
DL1YOV
Anmeldungsdatum: 28.02.2007 Beiträge: 7
|
Verfasst am: 22.05.2007, 19:09 Titel: |
|
|
Genau so etwas frage ich mich auch schon seit Jahren. Ganz früher hatte ich mal einen C64, da konnte man den Synthesizer noch direkt programmieren, d.h. man teilte dem Chip mit, welche Tonhöhe, Länge und Hüllkurvencharacteristik der Ton haben sollte und dann wurde der Ton direkt ausgegeben (also ohne irgendwelche Umwege wie MOD, Midi etc.). Genau so eine Möglichkeit suche ich auch auf dem PC unter Linux. Gibt's da irgendeine Möglichkeit?
Gruß,
Oliver |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 22.05.2007, 20:47 Titel: |
|
|
Leider, leider gibt's auf dem PC keinen SID, aber ich glaube das hast du schon in deiner Verzweiflung gemerkt Da hilft nur ein Emulator... (Farbrausch hat übrigens einen Emulator für diese nette 64k-Kiste in 64 KB nachgeproggt! ) - naja, das, was dem SID wohl noch am ähnlichsten ist, ist die MIDI-Schnittstelle... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 23.05.2007, 09:41 Titel: |
|
|
Weiss nicht, ob das hierher passt, aber es gibt auch die Möglichkeit, über fmod Hüllkurven-Synthese zu machen. Wird kurz im letzten Kapitel des Oma-Tutorials, Teil 3 erklärt.
Viele Grüsse!
Croco |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.05.2007, 16:31 Titel: |
|
|
Kommt darauf, was für eine Hüllkurve du möchtest. Wenn's nur um die Lautstärke geht, kannst du deine Signal einfach mal einen Wert zwischen 0 und 1 nehmen (sofern das sample signed ist) nehmen, und die lautstärke zu modifzieren. dazu habe ich auch ein beispiel:
Code: |
sub CreateSample()
Dim B as short,Lang as UShort,A&,Amp1#,Amp2#,Amp#,AmpStep#,K,C&
Lang = 30000
OPEN "~xTemp.raw" FOR BINARY AS #1
Amp1# = 0.4
Amp2# = 0
AmpStep# = (Amp1# - Amp2#) / Lang
Amp# = Amp1#
FOR K = 1 TO Lang
A& = SIn(K * .1) * 32767 + 32767
C& = Sin(K * .5) * 32767 + 32767
A&=A&+C&
A&\=2
A& = A& - 32767
Amp# = Amp# - AmpStep#
A& = A& * Amp#
IF A& < -32766 THEN A& = -32766
IF A& > 32767 THEN A& = 32767
B = A&
PUT #1, , B
NEXT
CLOSE #1
end sub |
achtung, mit fb 0.16 zuletzt kompiliert - muss optimiert werden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|