Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 01.06.2007, 14:07 Titel: PC-Speaker |
|
|
Nach langer Zeit mal wieder ne Sinnvolle Frage:
Wie geb ich am besten auf dem internen PC-Speaker Töne aus in FreeBasic? |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 01.06.2007, 14:39 Titel: |
|
|
BEEP...  |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 01.06.2007, 14:51 Titel: |
|
|
Ne, da kommt idR der Windows-Ding.wav |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.06.2007, 14:57 Titel: |
|
|
inp und out, falls das noch geht  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
c.m.obrecht

Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 01.06.2007, 15:31 Titel: |
|
|
Code: | V$=CHR(7)
asm
push offset V$
push 0
call _fb_PrintString@12
end asm |
_________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.06.2007, 15:58 Titel: |
|
|
ich kann dir auch ein pc-speaker sample geben und das kannste dann per FMOD steuern  _________________ » 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: 01.06.2007, 16:00 Titel: |
|
|
Print CHR(7) hätte dafür auch gereicht...
was ich will ist ein Befehl á la Sound, mit dem ich Frequenz F für ne Dauer T über den Speaker ausgeben will
Sound F, T
Will damit paar Leuten auf den Keks gehn  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 01.06.2007, 16:02 Titel: |
|
|
nimm doch ein qb slave-modul
nein wie gesagt, man kann per Out 61, x oder so den pc-speaker steuern. den genauen port weiß ich grad nicht so ganz. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
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: 01.06.2007, 16:05 Titel: |
|
|
Simuliern?
Code: | Print "Denken sie sich an dieser Stelle einen Ton mit 440 Hertz für 3 Sekunden. Danke." |
_Jojo_, wär toll wenn dir der Port noch einfalln würde  |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 01.06.2007, 16:21 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Simuliern?
Code: | Print "Denken sie sich an dieser Stelle einen Ton mit 440 Hertz für 3 Sekunden. Danke." |
|
ccbasic ist für cc und die progs kann man inner IDE simlulieren lassen, als ob sie auf der cc laufen  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
c.m.obrecht

Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 01.06.2007, 16:27 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Print CHR(7) hätte dafür auch gereicht...
|
Ich denke einfach zu viel in Assembler seit den MASM32-Versuchen  _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 01.06.2007, 16:51 Titel: |
|
|
Hi,
funktioniert nicht auf WIN9X.
Code: | #include once "windows.bi"
' Octave 0 1 2 3 4 5 6 7
' Note
' C 16 33 65 131 262 523 1046 2093
' C# 17 35 69 139 277 554 1109 2217
' D 18 37 73 147 294 587 1175 2349
' D# 19 39 78 155 311 622 1244 2489
' E 21 41 82 165 330 659 1328 2637
' F 22 44 87 175 349 698 1397 2794
' F# 23 46 92 185 370 740 1480 2960
' G 24 49 98 196 392 784 1568 3136
' G# 26 52 104 208 415 831 1661 3322
' A 27 55 110 220 440 880 1760 3520
' A# 29 58 116 233 466 932 1865 3729
' B 31 62 123 245 494 988 1975 3951
Beep_ (523, 60) 'C5
Beep_ (587, 60) 'D5
Beep_ (659, 60) 'E5
Beep_ (698, 60) 'F5
Beep_ (784, 60) 'G5
Beep_ (880, 60) 'A5
Beep_ (988, 60) 'B5
Beep_ (1046, 60) 'C6
sleep
end |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
c.m.obrecht

Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 01.06.2007, 16:55 Titel: |
|
|
 _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.06.2007, 08:51 Titel: |
|
|
Dankschö, Volta, sowas hab ich gesucht  |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 02.06.2007, 10:02 Titel: Speaker Sound Function for all DOS/Linux/Win |
|
|
Code: | ' Speaker Sound Function for all DOS/Linux/Win
' Notes:
' On windows >= NT, direct port access is not allowed, in this instance
' however we can use the WinAPI Beep function, which allows freq and duration
' Octave 0 1 2 3 4 5 6 7
' Note
' C 16 33 65 131 262 523 1046 2093
' C# 17 35 69 139 277 554 1109 2217
' D 18 37 73 147 294 587 1175 2349
' D# 19 39 78 155 311 622 1244 2489
' E 21 41 82 165 330 659 1328 2637
' F 22 44 87 175 349 698 1397 2794
' F# 23 46 92 185 370 740 1480 2960
' G 24 49 98 196 392 784 1568 3136
' G# 26 52 104 208 415 831 1661 3322
' A 27 55 110 220 440 880 1760 3520
' A# 29 58 116 233 466 932 1865 3729
' B 31 62 123 245 494 988 1975 3951
#ifdef __FB_WIN32__
#include once "windows.bi"
#endif
Sub Sound_DOS_LIN(Byval freq As Uinteger, Byval dur As Uinteger)
Dim As Single t = Timer
Dim As Ushort f = 1193181 \ freq
Out &H61, Inp (&H61) Or 3 ' turn speaker on
Out &H43, &HB6 ' get the timer ready
Out &H42, Lobyte(f) ' out low order
Out &H42, Hibyte(f) ' out high order
While ((Timer - t) * 1000) < dur ' wait for out specified duration
Sleep 1,1
Wend
Out &H61, Inp (&H61) And &HFC' turn speaker off
End Sub
Sub Sound(Byval freq As Uinteger, Byval dur As Uinteger)
#ifndef __FB_WIN32__
' If not windows then ..
Sound_DOS_LIN(freq, dur)
#Else
' If Windows
Dim osv As OSVERSIONINFO
osv.dwOSVersionInfoSize = Sizeof(OSVERSIONINFO)
GetVersionEx(@osv)
Select Case osv.dwPlatformId
Case VER_PLATFORM_WIN32_NT
' If NT then use Beep from API
Beep_(freq, dur)
Case Else
' If not on NT then use the same as DOS/Linux
Sound_DOS_LIN(freq, dur)
End Select
#Endif
End Sub
' TEST
Sound(523, 60) 'C5
Sound(587, 60) 'D5
Sound(659, 60) 'E5
Sound(698, 60) 'F5
Sound(784, 60) 'G5
Sound(880, 60) 'A5
Sound(988, 60) 'B5
Sound(1046, 60) 'C6
Sleep
End |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.06.2007, 11:33 Titel: |
|
|
Nimm doch den Präprozessor is doch einfacher...
Code: |
#ifdef __FB_WIN32__
#include once "windows.bi"
Sub Sound(Byval freq As Uinteger, Byval dur As Uinteger)
#ifndef __FB_WIN32__
' If not windows then ..
Sound_DOS_LIN(freq, dur)
#Else
' If Windows
Dim osv As OSVERSIONINFO
osv.dwOSVersionInfoSize = Sizeof(OSVERSIONINFO)
GetVersionEx(@osv)
Select Case osv.dwPlatformId
Case VER_PLATFORM_WIN32_NT
' If NT then use Beep from API
Beep_(freq, dur)
Case Else
' If not on NT then use the same as DOS/Linux
Sound_DOS_LIN(freq, dur)
End Select
#Endif
End Sub
#else
Sub Sound(Byval freq As Uinteger, Byval dur As Uinteger)
Dim As Single t = Timer
Dim As Ushort f = 1193181 \ freq
Out &H61, Inp (&H61) Or 3 ' turn speaker on
Out &H43, &HB6 ' get the timer ready
Out &H42, Lobyte(f) ' out low order
Out &H42, Hibyte(f) ' out high order
While ((Timer - t) * 1000) < dur ' wait for out specified duration
Sleep 1,1
Wend
Out &H61, Inp (&H61) And &HFC' turn speaker off
End Sub
#endif
' TEST
Sound(523, 60) 'C5
Sound(587, 60) 'D5
Sound(659, 60) 'E5
Sound(698, 60) 'F5
Sound(784, 60) 'G5
Sound(880, 60) 'A5
Sound(988, 60) 'B5
Sound(1046, 60) 'C6
Sleep
End
|
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 02.06.2007, 12:19 Titel: |
|
|
nein, probier das mal auf 98 oder ME läuft so nicht!
Die Sub Sound_DOS_LIN fehlt! _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.06.2007, 12:41 Titel: |
|
|
jo, habs gemerkt
Das Einsatzgebiet ist eh Windows 2000  |
|
Nach oben |
|
 |
|