Selbstgenerierte Samples -> Schiefe Töne
Übersicht

![]() |
ThunderBetreff: Selbstgenerierte Samples -> Schiefe Töne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
habe leider ein komisches Problem mit Sound und Musik, also Sachen mit denen ich mich nicht auskenne und normalerweise auch nicht beschäftige. Ich generiere mir selber verschiedene Audiosamples (alle Halbtöne einer Oktav in dem Beispiel) und spiele sie ab. Je nach Build-Variante (mit/ohne Debug, nicht/schon multithreaded) sind es verschieden viele Töne, die übersteuern oder zu laut sind... Ich hoffe mir könnte jemand helfen. Wie gesagt, hier ein Beispiel: BlitzMax: [AUSKLAPPEN] Strict |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann das nicht nachvollziehen. Was macht denn die Funktion PlaySample? Spielt die alles auf einmal ab? Dann ist's klar, dass es übersteuert... | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also der SF_MONO16LE hat die grobe Amplitude in den ungeraden Bytes und die feine Amplitude in dem geraden Bytes davor. Das ist genau anders herum als bei Dir...
Ich habe für Dich hier ein Beispiel aus meinen Codes, allerdings ist es die umgekehrte Funktion: BlitzMax: [AUSKLAPPEN] Global sample:TAudioSample=CreateAudioSample(Hertz*2,Hertz,SF_MONO16LE) vollkommene Stille, also der Nulldurchgang entspricht einem Wert von 128*256. hilft dir das? |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Holzchopf: Nein, die spielt natürlich nicht alles auf einmal ab. Aber ich hab anscheinend sie irgendwie aus der Datei gelöscht, also nochmal alles:
BlitzMax: [AUSKLAPPEN] Strict Midimaster: Habe ja auch Big Endian ![]() Das mit dem Nulldurchgang ist aber ein guter Tipp, ich kann es nur nicht nachstellen: Das heißt also, wenn ich in meinem Beispiel amp auf 256*128 setze, dürfte kein Ton kommen oder? Ist aber. Habe jetzt trotzdem probiert, den Wert zu amp dazuzuaddieren, aber es machen immer noch ein paar Töne Krach... :/ |
||
- Zuletzt bearbeitet von Thunder am Mi, Jul 17, 2013 18:14, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
meinst Du mit "Töne machen Krach", dass es bei bestimmten Frequenzen zu einem Übersteuern kommt. Oder ist dann der ganze Sound unbrauchbar und macht wirklich sonderbare Geräusche?
Oder hast Du nur Knackser drin? Die kommen vom falschen aneinandersetzen der mit Sin() erzeugten Teilstücke. Prüfe, ob das Ende und der Anfang wirklich ein Nulldurchgang ist. Ebenso könnte einfach die Karte schon übersteuern. Gerade dann, wenn Du versuchtst mehrere Sounds gleichzeitig abzuspielen, die alle bis an die Grenze ausgesteuert erstellt wurden. Versuch doch mal den Faktor von 16.000 auf 8.000 runterzusetzen. Außerdem würde ich mal versuchen mit 44.100Hz statt 48.000 zu experimentieren. Vielleicht ist ja da die Ursache Ja also wenn den finale Sound überall 128*256 hat, also so aussieht: 128,0,128,0,128,0,... dann müsste absolut nix zu hören sein. Amp muss unbedingt an allen Stellen positiv sein, bevor Du es mod 255 in den finalen Sound reinkopierst. Dein Amp müsste dann so gebildet werden: BlitzMax: [AUSKLAPPEN] amp = Sin(i * 360 / rate)*8000+128*256 Ach ja, Big Endian... das hatte ich falsch gesehen. Schau Dir Deine Sounds doch mal mit Audacity an. Auch da kannst Du vielleicht schon erkennen woran es liegt. Wozu brauchst Du die Sounds? Geht es Dir um die Synthese? Oder willst Du nur einfach eine Tonleiter. Dann sieh Dir mein Tool an: https://www.blitzforum.de/foru...hp?t=37210 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich heisse nicht DAK ![]() In der Hilfe steht übrigens zu SF_MONO16BE Zitat: Mono signed 16 bit big endian
Also habe ich kurz folgendes ausprobiert BlitzMax: [AUSKLAPPEN] amp = Sin(i * 360 / rate)*16000und ZACK gings - wunderschöner Sinus ![]() BTW: Konnte ich dein Phänomen von wegen Buildvariante = anderes Ergebnis immer noch nicht nachvollziehen. Kannst du das bei dir nochmal ausprobieren? MfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hoppla, sorry Holzchopf, das wird ein Fehler mit meinem eigenen Multitasking gewesen sein ![]() Ja, Midimaster, einzelne Frequenzen haben übersteuert. Aber ich hab mir deinen Tipp zu Herzen genommen und mir die Töne in Audacity angeschaut und bemerkt, dass eine halbe Sinuskurve völlig normal und der Rest völlig durcheinander war und mir ist dann im Code aufgefallen, dass ich nicht alle sample[]-Felder befülle: BlitzMax: [AUSKLAPPEN] sample = CreateAudioSample(rate, 48000, SF_MONO16BE) Wegen dem Step 2 muss also im Kopf der For-Schleife rate gegen 2*rate getauscht werden und schon habe ich auch schöne Sinustöne. Das macht auch die Sache mit unterschiedlichen Ergebnissen bei Debug/nicht Debug plausibel. Ja, dein Tool habe ich schon im Vorhinein gefunden. Das sieht echt cool aus, aber die Töne sind für ein kleines virtuelles Keyboard, das ich gerade programmiere, und ich hatte vor, dass es möglichst auf externe Ressourcen verzichtet. Danke euch beiden ![]() Eine zusätzliche Frage: Bei zwei Tönen, die knapp nebeneinander liegen habe ich trotzdem sehr unschöne Klänge. Kriegt man diese Schwebung irgendwie in den Griff? Ich hab's mit Phasenverschiebung versucht, aber ich glaube das bringt nichts ![]() |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh ja, das mit dem x2 ist mir auch aufgefallen. Hatte ich vergessen zu erwähnen ![]() Und wie hast du die Töne ins Audacity gebracht? |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, könnte mir vorstellen, dass auf Debug automatisch allokierte Speicherbereiche mit 0 initialisiert werden oder so. Dann würde der Fehler nicht so herausstechen.
Hab ein Klinkenkabel genommen und Lautsprecher- mit Mikrofon-Anschluss verbunden ![]() |
||
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gegen die Schwebung könnten Obertöne helfen. Einfach den gleichen Ton mit kleinerer Lautstärke und 2, 3, ...-facher Frequenz dazusampeln. Z.B.
BlitzMax: [AUSKLAPPEN] For i = 0 To rate Step 2(oder wie auch immer dein korrigierter Code aussieht) Damit ist eigentlich immer ein Oberton zu hören und die Schwebeeffekte sollten geringer ausfallen. Phasenverschiebung ist eigentlich nur eine zeitliche Verschiebung der Schwebung, sollte also wenig helfen. Ich habe es aber ehrlich gesagt noch nie ausprobiert, ob Obertöne das Problem beheben. ZEVS |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Thunder: Nimm doch für sowas einfach als Aufnahmegerät den Soundmixer. Dann hast du genau das, was du in Hardware löst, in Software. Braucht keine extra Kabel und gibt auch bessere Soundqualität. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit dem Soundmixer interne Aufnahmen zu machen ist unter WIN-7 und WIN-8 so erschwert worden, dass man echt lange tüfteln muss, bis man die Ansicht "Aufnahme-Mixer" überhaupt zu Gesicht bekommt. Microsoft hat scheinbar was dagegen, dass die Leute Aufnahmen von dem machen, was sie auch gerade über die Lautsprecher hören.
Eine weitere Möglichkeit die eigenen Samples zu speichern seht ihr in meinem Tool. Dort gibt es im Quellcode das Modul axe.oggsaver , das Samples als OGG files abspeichert. Verwendung siehe: https://www.blitzforum.de/forum...hp?t=37210 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dachte mir schon, dass es irgendwie über Software gehen könnte, aber hat ja so auch ganz gut funktioniert.
Danke ZEVS, dachte nicht, dass man Obertöne einfach nur "dazuaddiert" ![]() Ah super, Midimaster, sowas hab ich auch gesucht. Danke sehr! ![]() |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, find's gar nicht so schwer in Win7... Weiß nicht, wie's in Win8 ist. Ich tu mir den Mist nicht an ![]() In Win7: Rechtsklick auf das Lautsprechersymbol im Systray -> Aufnahmegeräte -> Rechtsklick auf Stereomix -> Als Standardgerät auswählen Fertig. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Off-Topic: Stereomix ist bei Win 7 (zumindest bei Home) standardmässig nicht in der Liste, da liegt das Problem. Habe mich dazu auch schon einmal totgesucht ![]() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, interessant, bei mir schon.
Bei einem älteren Computer von mir war da was von wegen Rechtsklick in das Fenster von vorhin -> Deaktivierte/Getrennte Geräte anzeigen |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group