Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Sound - mein ewig Problem
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 03.03.2010, 19:28    Titel: Sound - mein ewig Problem Antworten mit Zitat

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? mit den Augen rollen

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! mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 03.03.2010, 19:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.03.2010, 19:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.03.2010, 21:19    Titel: Antworten mit Zitat

Kleine Stilkorrektur am Rande:
Code:
Sound(rndfreq, 400) 'Play sound
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 03.03.2010, 23:16    Titel: Antworten mit Zitat

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! zwinkern

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? verwundert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.03.2010, 23:43    Titel: Antworten mit Zitat

AIN hat Folgendes geschrieben:
fbc: FreeBASIC Compiler - Version 0.18.2 (10-12-2007) for win32 (target:win32)

Your compiler installation is outdated. Please try the current version 0.20.0 which can be downloaded here: http://downloads.sourceforge.net/fbc/FreeBASIC-v0.20.0b-win32.exe?download
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 04.03.2010, 00:31    Titel: Antworten mit Zitat

Hm, Ich habe wahrscheinlich noch andere Problem im PC ... neutral

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... Kopf schütteln

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 04.03.2010, 05:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 565
Wohnort: Jüterbog

BeitragVerfasst am: 04.03.2010, 20:50    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 04.03.2010, 21:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 565
Wohnort: Jüterbog

BeitragVerfasst am: 04.03.2010, 22:06    Titel: Antworten mit Zitat

Ohh mann... ich und english grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 565
Wohnort: Jüterbog

BeitragVerfasst am: 05.03.2010, 00:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 05.03.2010, 16:07    Titel: Antworten mit Zitat

The Freebasic compiler is not case sensitive.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 05.03.2010, 16:59    Titel: Antworten mit Zitat

Yes, es jetzt funktioniert (Fehler war: "BEEP" anstelle von "Beep"), aber real-sound ("wirklich-Ton") is nicht zu hören... neutral
Nur sind dort die Frekventen wechseln (optisch)... mit den Augen rollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.03.2010, 17:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 05.03.2010, 18:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 05.03.2010, 18:44    Titel: Antworten mit Zitat

BEEP ist ein Basicbefehl
siehe: http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgBeep
und
http://www.freebasic.net/forum/viewtopic.php?p=20441#20441
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 05.03.2010, 20:28    Titel: Antworten mit Zitat

Trotzdem immer sound nicht funktioniert... weinen
Es kam mir den Sinn - z.B. eine DLL beutzen? ... mit den Augen rollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AIN



Anmeldungsdatum: 03.03.2010
Beiträge: 16

BeitragVerfasst am: 06.03.2010, 02:56    Titel: Antworten mit Zitat

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! zwinkern Thank you very much!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 06.03.2010, 12:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz