Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 03.03.2010, 19:28 Titel: Sound - mein ewig Problem |
|
|
Please! Ich möchte mit dem sound einfach arbeiten in FB, aber das ist für mich immer unmöglich...
Ist am einfachsten der Weg wie soll ich das anstellen?
z.B. on ZX: BEEP x,y .... on Atari: SOUND x,y ... on C64: POKE x,y ... etc. Keine music, keine lange Prozedure, only die Töne.
Thank you very much!
P.S. I am sorry for my German!  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 03.03.2010, 19:34 Titel: |
|
|
Ob Musik oder nur Töne, du wirst nicht um eine zusätzliche Soundbibliothek herumkommen (BASS, FMOD). Es ist allerdings auch nicht allzu kompliziert, wenn du vorher ein paar Beispiele dazu anschaust.
Zu BASS müsste ich noch ein paar einfache Code-Schnipsel herumliegen haben. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 03.03.2010, 19:47 Titel: |
|
|
Hallo,
unter Windows lassen sich mittels einer einfachen WinAPI-Funktion Sounds ausgeben, indem man Frequenz und Dauer festlegt:
Code: | ' Ton ausgeben mittels Frequenz- und Dauerangabe
' http://msdn.microsoft.com/en-us/library/ms679277%28VS.85%29.aspx
' 03.03.2010, funktioniert mit FreeBASIC 0.20.0 für Windows
Declare Sub Sound Lib "kernel32" Alias "Beep" ( _
ByVal frequency As Integer, ByVal duration As Integer)
Dim As Integer rndfreq
Randomize Timer 'Initialize pseudorandom number generator
Do
rndfreq = INT(RND*5000)+100 'Compute random frequency
Print rndfreq & " Hertz"
Sound rndfreq, 400 'Play sound
Loop Until Inkey <> "" 'Loop until user presses any key |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 03.03.2010, 21:19 Titel: |
|
|
Kleine Stilkorrektur am Rande:
Code: | Sound(rndfreq, 400) 'Play sound |
|
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 03.03.2010, 23:16 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Hallo,
unter Windows lassen sich mittels einer einfachen WinAPI-Funktion Sounds ausgeben, indem man Frequenz und Dauer festlegt:
Code: | ' Ton ausgeben mittels Frequenz- und Dauerangabe
' http://msdn.microsoft.com/en-us/library/ms679277%28VS.85%29.aspx
' 03.03.2010, funktioniert mit FreeBASIC 0.20.0 für Windows
Declare Sub Sound Lib "kernel32" Alias "Beep" ( _
ByVal frequency As Integer, ByVal duration As Integer)
Dim As Integer rndfreq
Randomize Timer 'Initialize pseudorandom number generator
Do
rndfreq = INT(RND*5000)+100 'Compute random frequency
Print rndfreq & " Hertz"
Sound rndfreq, 400 'Play sound
Loop Until Inkey <> "" 'Loop until user presses any key |
Viele Grüße!
Sebastian |
Thank you Sebastian!
Aber - während compilation habe ich diese Fehler:
Command executed:
"D:\Program Files\FreeBASIC\fbc.exe" "D:\Pomůcky\FBIde\FBIDETEMP.bas"
Compiler output:
D:\Pomůcky\FBIde\FBIDETEMP.o:fake:(.text+0xba): undefined reference to `BEEP@8'
Results:
Compilation failed
System:
FBIde: 0.4.6
fbc: FreeBASIC Compiler - Version 0.18.2 (10-12-2007) for win32 (target:win32)
OS: Windows XP (build 2600, Service Pack 3)
What happened?  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 04.03.2010, 00:31 Titel: |
|
|
Hm, Ich habe wahrscheinlich noch andere Problem im PC ...
Immer is dort diese Fehler (on version 0.20.0 too):
Command executed:
"D:\Program Files\FreeBASIC\fbc.exe" "D:\Pomůcky\FBIde\FBIDETEMP.bas"
Compiler output:
D:\Pomůcky\FBIde\FBIDETEMP.o:fake:(.text+0xba): undefined reference to `BEEP@8'
Results:
Compilation failed
System:
FBIde: 0.4.6
fbc: FreeBASIC Compiler - Version 0.20.0 (08-10-2008) for win32 (target:win32)
OS: Windows XP (build 2600, Service Pack 3)
Vielleicht muss ich Windows reinstall machen...
In jedem Fall is for me better old version 0.18.2 because in version 0.20.0 is many other problems with old programs... Ist möglich sound machen in version 0.18.2 ? |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 04.03.2010, 05:20 Titel: |
|
|
nein, war nur ein problem der deklaration
Code: | Declare Function Sound Lib "kernel32" Alias "Beep" (ByVal dwFreq As Integer, ByVal dwDuration As Integer) As Integer |
Sollte so gehen _________________
 |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 04.03.2010, 20:50 Titel: |
|
|
also ich musste es so schreiben, sonst gab es auch Fehler....
alias "Beep"
Das Beep wird wohl durch den Hiliter im Codeblock in Großbuchstaben umgewandelt
Also muss die aufgerufene API-Funktion wohl korrekt und "casesensitiv" angegeben werden?? |
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 04.03.2010, 21:58 Titel: |
|
|
Muttonhead hat Folgendes geschrieben: | also ich musste es so schreiben, sonst gab es auch Fehler....
alias "Beep"
Das Beep wird wohl durch den Hiliter im Codeblock in Großbuchstaben umgewandelt
Also muss die aufgerufene API-Funktion wohl korrekt und "casesensitiv" angegeben werden?? |
Please! ufff, das ist für mich zu verwickelt... und ich fühle davon, dass diese sehr wichtig Information ist... Ist es möglich noch einmail english?
Thank you! |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 04.03.2010, 22:06 Titel: |
|
|
Ohh mann... ich und english
begin code:
' Ton ausgeben mittels Frequenz- und Dauerangabe
' 03.03.2010, funktioniert mit FreeBASIC 0.20.0 für Windows
DECLARE FUNCTION Sound LIB "kernel32" ALIAS "Beep" (BYVAL dwFreq AS INTEGER, BYVAL dwDuration AS INTEGER) AS INTEGER
DIM AS INTEGER rndfreq
Randomize TIMER 'Initialize pseudorandom number generator
DO
rndfreq = INT(RND*5000)+100 'Compute RANDOM frequency
PRINT rndfreq & " Hertz"
Sound rndfreq, 400 'Play sound
LOOP UNTIL INKEY <> "" 'LOOP UNTIL user presses ANY key
end code:
change "BEEP" to "Beep" |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 05.03.2010, 00:42 Titel: |
|
|
beim Überfliegen des Threads fällt mir grad auf... ähmm... wer alles "german Umlauts" grad mal schnell so auf seiner Tastatur erreichen
kann...*kopfkratz*... |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 05.03.2010, 16:07 Titel: |
|
|
The Freebasic compiler is not case sensitive. |
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 05.03.2010, 16:59 Titel: |
|
|
Yes, es jetzt funktioniert (Fehler war: "BEEP" anstelle von "Beep"), aber real-sound ("wirklich-Ton") is nicht zu hören...
Nur sind dort die Frekventen wechseln (optisch)...  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.03.2010, 17:36 Titel: |
|
|
28398 hat Folgendes geschrieben: | The Freebasic compiler is not case sensitive. |
Sicher, dass das auch für Namen in DLLs gilt? Nach C-Standard wäre das nämlich verdächtig... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 05.03.2010, 18:11 Titel: |
|
|
Vielleicht gibt es da ja eine Art Vorzugsregelung. Wenn mans richtig schreibt, und das entsprechende Symbol im Namensraum ein paar mal vorhanden ist, wird das passendste genommen...
Aber eigentlich unterscheidet er ja nicht zwischen Groß- und Kleinschreibung. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 05.03.2010, 20:28 Titel: |
|
|
Trotzdem immer sound nicht funktioniert...
Es kam mir den Sinn - z.B. eine DLL beutzen? ...  |
|
Nach oben |
|
 |
AIN
Anmeldungsdatum: 03.03.2010 Beiträge: 16
|
Verfasst am: 06.03.2010, 02:56 Titel: |
|
|
Ich habe gefunden hier on Forum diese sicher funktionierende CODE:
Code: |
#include "windows.bi"
#include once "win/mmsystem.bi"
dim x as byte ptr
dim as integer ff=freefile
open "c:\windows\media\ding.wav" for binary as #ff
x=callocate(lof(ff))
get #ff,,*x,lof(ff)
close #ff
playsound(x,0,snd_memory or snd_nodefault)
deallocate x
end
|
Jedenfalls danke ich allem für die Antworten! Thank you very much!! |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 06.03.2010, 12:11 Titel: |
|
|
Oder kürzer:
Code: | #Include "windows.bi"
#Include Once "win/mmsystem.bi"
PlaySound("c:\windows\media\ding.wav",0,SND_NODEFAULT Or SND_FILENAME)
End |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|