Ton mit Frequenz erzeugen.
Übersicht Ressourcen Sound & Music
GoblinBetreff: Ton mit Frequenz erzeugen. |
Di, Mai 08, 2007 19:06 Antworten mit Zitat |
|
---|---|---|
Ich würde gerne einen Ton mit einer Frequenz von 40 Hz erzeugen (mit BlitzPlus) und bräuchte da die passende DLL. hab sie auch schon gefunden: bass.dll
fehlt noch eins: bass.decls und: ein beispiel danke für alle antworten (zumindest die sinnvollen) |
||
BladeRunnerModerator |
Di, Mai 08, 2007 19:16 Antworten mit Zitat |
|
---|---|---|
40 Hz, lecker. noch unterhalb des Steckdosenbrummens, das macht lustig.
https://www.blitzforum.de/foru...t=bass+dll Einmal decls, rucki gefunden sogar per GOOGLE. Bitteschön. Bedienung gibts auch per google |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hecticSieger des IS Talentwettbewerb 2006 |
Mi, Mai 09, 2007 12:50 Antworten mit Zitat |
|
---|---|---|
Ich glaub ein Ton von 30 Hz unter Dauerbelastung macht Menschen Verrückt, bzw. lässt sie Halluzinationen sehen. Oder waren es doch 40 Hz?
Obwohl ich ein Freund solcher Selbstversuche bin, habe ich dieses bisher noch nicht ausprobiert, obwohl ein Subwoofer (marke Selbstbau) zur Verfügung steht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
skey-z |
Mi, Mai 09, 2007 12:58 Antworten mit Zitat |
|
---|---|---|
oder einfach mit Windows, über den Systemlautsprecher
Code: [AUSKLAPPEN] .lib "kernel32.dll" Beep%(Freq, Duration) |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
StepTiger |
Mi, Mai 09, 2007 15:41 Antworten mit Zitat |
|
---|---|---|
Klappt bei mir nicht, das dürfte daran liegen, dass ich keinen Systemlautsprecher mehr habe ^^
Wie kann man mit der BASS DLL eine bestimmte Frequenz erzeugen? |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Goblin |
Mi, Mai 09, 2007 19:40 Antworten mit Zitat |
|
---|---|---|
Genau das, StepTiger, wollte ich auch wissen...
ich hab die bass.decls in meim Userlibs ordner. @BladeRunner: Danke für den link aber das war nicht was ich suche. Damit kann ich bloß das mit den CDs machen(...) Ich bräuchte einfach die Function aus der Bass.dll (sowas ähnliches (zur veranschaulichung): Bass_CreateFrequenz(freqenz), wenn ihr versteht was ich meine ) danke |
||
BladeRunnerModerator |
Mi, Mai 09, 2007 20:19 Antworten mit Zitat |
|
---|---|---|
Die decls (und die bass.bb im selben thread) ist alles was man benötigt, unter der Voraussetzung dass man weiss wie man die Dll zu nutzen hat. Und genau da scheint es zu hapern.
Die bass.dll stellt keine "generiere Hüllkurve"-Funktion zur Verfügung. Aber sie bietet die Funktionalität Streams zu erzeugen, die Du dann jedoch noch mit Inhalt füllen musst. Dazu solltest Du ein wenig Ahnung von der Art wie Sounds gespeichert werden haben. Hier wäre zum Beispiel wotsit.org zu nennen, denn Du musst wissen wie eine wav funktioniert. Sprich: Erst vorbilden, dann wird dass. Aber es ist ne Ladung Arbeit. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hecticSieger des IS Talentwettbewerb 2006 |
Mi, Mai 09, 2007 20:42 Antworten mit Zitat |
|
---|---|---|
Könnte man nicht gleich in den Speicher die Wellenform per PokeByte (für mono 8 Bit) oder PokeShort (für mono 16 Bit) ablegen, die dann nur noch ausgelesen wird. Denn die bass.dll macht doch nichts anderes, oder? Die packt ein Stream in den Speicher, der dann (zB für die Visualisierung) mit Blitz ausgelesen werden kann. Das geht eventuell dann auch anders rum... Falls es klappt, will ich die Lösung hier sehen, bitte, bitte, bitte... | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
BladeRunnerModerator |
Mi, Mai 09, 2007 21:37 Antworten mit Zitat |
|
---|---|---|
Im Prinzip läuft es so, allerdings muss man sich dennoch mit dem Aufbau einer .wav beschäftigen, da noch einige Angaben dazu kommen: Samplerate ZB, was direkt auch die Samplegröße bestimmt. Und dann musst du Die amplitude in der passenden Frequenz in die Bank hämmern, damit du Auch hörst was Du hören willst.
Dann gibts noch die Frage nach Sinus, Sägezahn öder Rechteckschwingung, was den Sound massgeblich beeinflusst. Wer sich mal mit der Programmierung des SID befasst hat sollte in Grundzügen wissen wie das funzt. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hecticSieger des IS Talentwettbewerb 2006 |
Mi, Mai 09, 2007 21:59 Antworten mit Zitat |
|
---|---|---|
Wie Töne erzeugt werden, weiß ich. Ich habe mit Blitz auch schon .wav -Dateien eingelesen und mit Blitz dann Hüllkurvenänderungen und anderes programmiert und wieder als .wav gespeichert, um besondere Effekte zu erziehlen, die mit meinem Musikprogrammen nicht möglich waren. Wüsste jetzt aber nicht, wozu man sich den .wav -Header antun müsste, um in ein Stream zu speichern. Da stelle ich mir die Headerinformationen so vor, dass sie als Parameter übergeben werden. Wobei eine .wav ja wirklich sehr einfach struktuiert ist im Gegensatz zu mp3, wo ich immer noch nicht ganz dahinter gekommen bin.
Meine Vorstellungen währen: Sampling(Hz[0-88200], Bits[8/16], Channels[1/2]) Und dann für eine Sekunde Ton zB Code: [AUSKLAPPEN] Sampling(44100,16,1) For q=1 to 44100 PokeShort(bank,q*2,32768+sin(q)*32767) Next StartSample() Für echtes Streaming natürlich kein StartSample() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
BladeRunnerModerator |
Mi, Mai 09, 2007 22:06 Antworten mit Zitat |
|
---|---|---|
Mit dem Studium der .wav kommt auch das wissen wie die Audiodaten gespeichert sind. der Header ist tatsächlich im wesentlichen nebensächlich. Aber ich glaube eben das Goblin dachte es gäbe einen makesound()-Befehl. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Goblin |
Do, Mai 10, 2007 11:46 Antworten mit Zitat |
|
---|---|---|
ja ... so in etwa. Ich werd mich mal mit dem Aufbau einer .wav beschäftigen...
Trotzdem mal danke. |
||
D2006Administrator |
Fr, Mai 11, 2007 3:45 Antworten mit Zitat |
|
---|---|---|
Eben in meinem Code-Ordner gefunden:
BlitzBasic: [AUSKLAPPEN] Graphics 640,480,32,2 Da is mich allerdings mit Tönen usw. nicht sehr gut auskenne, weiß ich jetzt nicht wirklich, wie man einen 40 Hz Ton erzeugt, aber man kann bei dem Beispiel ja schön rumspielen. PS: Das Beispiel braucht die bass.bb, welche du auch über die Forensuche finden solltest und den Befehl RtlMoveMemory2. Den kann ich noch fix mitgeben: kernel32.decls hat Folgendes geschrieben: .lib "Kernel32.dll"
RtlMoveMemory2%(Destination,Source*,Length) : "RtlMoveMemory" Steht allerdings bei mir mit in der bass.decls, vllt bei euch auch schon. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
hecticSieger des IS Talentwettbewerb 2006 |
Fr, Mai 11, 2007 5:14 Antworten mit Zitat |
|
---|---|---|
Ja geil, danke, jetzt habe ich was zum rumspielen und testen von ausgedachter Wellenformen.
Hier mal eine modifizierte Version von deinem Vorschlag (Voreinstellung auf Sinuns 40 Hz) Code: [AUSKLAPPEN] Graphics 1024,512,32,2
SetBuffer BackBuffer() Include "Bass.bb" hWnd = CallDLL("User32.dll","GetActiveWindow") If BASS_Init(-1,44100,0,hWnd) = 0 Then ; RuntimeError "Konnte nicht initalisieren!" ; End EndIf BASS_Start() hz=40 ; Hier die Frequenz angeben (nur bei art=1 genau) art=1 ; Hier die Abspielart angeben (1-4) length=1048576 ; Ein Megabyte Daten BassHandle=BASS_SampleCreate(length,44100,1,BASS_SAMPLE_MONO Or BASS_SAMPLE_LOOP); Or BASS_SAMPLE_OVER_POS) bnkData=CreateBank(length*2) LockBuffer BackBuffer() For q=0 To length-1 If art=1 y=Sin(q/44100.0*360*hz)*32767 If art=2 yy=yy+Rand(hz/8,hz*3):y=Sin(yy/44100.0*360)*16384 If art=3 yy=yy+Rand(1000.0*hz/(q+1),1000.0*hz/(q+1)*10):y=Sin(yy/44100.0*360)*16384 If art=4 y=y+hz*1.45:If y>32767 y=-32767 PokeShort bnkData,q*2,y WritePixel q*243000.0/length,128+y/256,-1 WritePixel q*24300.0/length,384+y/256,-1 Next UnlockBuffer BackBuffer() Text 20,20,"~erste 1/10 Sekunde" Text 20,276,"~erste 1/1 Sekunde" Flip Result=RtlMoveMemory2(BassHandle,bnkData,length) FreeBank bnkData hSample=BASS_SampleCreateDone() Channel=BASS_SamplePlay(hSample) WaitKey BASS_ChannelStop(Channel) BASS_Stop() BASS_Free() End Die Variable Hz gibt die Abspielfrequenz an. Mit der Variable Art, kann man andere Effekte abspielen lassen (zB Art=3 Drumähnlich). Bei mir funktionierte allerding die Initialisierung nicht, wo ich sie bei mir auskommentieren musste?! |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Mr Hopp |
Sa, Mai 26, 2007 12:25 Antworten mit Zitat |
|
---|---|---|
Toll! Gefällt mir das Programm! Ich habe mich letztens auchmal mit der Bass.dll angefreundet aber nur zur Visualisierung. Schön mal richtig Bass zum machen, hehe...
Hast du den Selbstversuch eigentlich mittlerweile mal durchgeführt? |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
Übersicht Ressourcen Sound & Music
Powered by phpBB © 2001 - 2006, phpBB Group