Posts by Midimaster

    Grundsätzlich ist es natürlich IMMER besser, wenn man die Aufnahmesituation vorher optimiert. Diktiergerät in die Mitte zwischen die beiden Gesprächspartner. Dann sind nicht nur die Lautstärken ähnlich, sondern auch die Klangqualität, bzw. die Raum-Situation.


    Noch besser: Eine Aufnahme IMMER in zwei Spuren, z.b. eine Stereo-Diktiergerät oder gar zwei Mikrofone. Dann kann man anschließend unterschiedliche Nacharbeiten an den Stimmen der beiden Teilnehmer vornehmen.


    Jetzt ist es aber schon passiert. Beide Stimmer befinden sich auf einer Spur und die Nachbearbeitung wird sich immer auf beide Stimmen auswirken.


    Das bringt große Nachteile mit sich:


    1. Wenn Du die leisen Stellen anhebst, werden auch die Hintergrundgeräusche lauter.


    2. Auch wenn wir es schaffen beide Stimmen gleich laut zu bekommen wird später durch die unterschiedliche Distanz zum Mikro die weiter entfernte Stimme dumpfer klingen. Als wäre eine Tür dazwischen!


    3. Der nahen Stimme wird es an "Raum" fehlen. Sie wird immer klingen, als säße der Sprecher im Kopf des Zuhörers und der entferntere Sprecher stünde in einer Türe.


    Deshalb hier mein Ratschlag:


    Dein Werkzeug heißt dazu Kompressor: Er macht laute Stellen leiser und leise Stellen lauter.


    Experimentiere mit unterschiedlichen Werten. Ruhig auch mal in Extreme gehen! Finde heraus, bei welchen Werten es gerade nicht mehr natürlich klingt, sondern schon sonderbar. Hast Du diesen Punkt gefunden, dann...


    ... Reduziere den Effekt wieder! Ändere final alles nur mit 2/3 dieser Werte, auch wenn Du denkst 100% wären "lauter".


    Versuche es nicht komplett auszugleichen! Bleibe bei dem Höreindruck, dass hier der zweite Sprecher weiter weg steht.

    Lass Dritte das Endergebnis hören, ohne Ihnen vorher die Rohaufnahme zu zeigen. Merken sie was?

    Du musst Dich nicht mit der MaxGui beschäftigen. BlitzMax läuft auch ohne GUI in einem einfachen Fenster. (Oder sogar auch ohne Fenster).


    Ich habe Dir hier mal ein minimales Beispiel geschrieben, um das Mikrofon abzuhören. Diese 43 Codezeilen öffnen das Audio-Input mit einem eigenen Thread (also einem anderen Prozessorkern). Dieser hört dann laufend auf das Interface und meldet ca. 100x pro Sekunde jeweils 48 Samples an das Hauptprogramm zurück (MyCallback). Dort werden die 48 Werte darauf hingehend untersucht, ob wenigstens einer von ihnen lauter als 1000 ist. Wenn ja wird am Bildschirm ein rotes Rechteck gezeichnet.

    ok... jetzt findest du auf meinem GitHub-Account perfekte zu deinem Problem passende Beispielcodes.


    Zunächst muss mein gesamtes Modul mima.miniaudio.mod in den mod-Ordner von Blitzmax (auf deinem Rechner)


    Danach BlitzMax starten und die Beispielcodes ausprobieren.


    Hier holst du das module am besten als ZIP (Grüner Knopf):

    GitHub - MidimasterSoft/BlitzMax-Miniaudio-Wrapper: a binding/wrapper for the audio library Miniaudio to the language BlitzMax
    a binding/wrapper for the audio library Miniaudio to the language BlitzMax - GitHub - MidimasterSoft/BlitzMax-Miniaudio-Wrapper: a binding/wrapper for the…
    github.com


    Danach entpackst Du es wie es ist in den Ordner mod


    Ordnerstruktur z.b.:


    C://BlitzMax/mod/mima.mod/miniaudio.mod/miniaudio.bmx (... und weitere inhalte)


    Als Beispiel für dich reichen zunächst diese beiden:


    CaptureRecording.bmx


    SaveTAudioSample.bmx


    Der Pointer...

    RecordingRAM[i]


    ...zeigt in diesem Capture-Beispiel direkt auf die einzelnen aufgenommenen 16bit-Samplewerte

    Jeden dieser Werte musst Du vor der Betrachtung noch in eine 32bit-INTEGER umwandeln

    Code
    For local i:Int=0 to n
       Pruefwert:Int = ShortToInt( RecordingRAM[i] )
    ...
    Next 
    
    Function ShortToInt:Int( s:Int )
        Return (s Shl 16) Sar 16
    End Function


    Danach können die PruefWerte von -32000 bis +32000 reichen, je nachdem wie laut das Gehörte war. Findest Du beim Durchscannen (für i=0 bis i=n) dort plötzlich Werte, die größer als z.b. 100 (oder ev. reicht auch 1000 als Schwellenwert) sind, dann weisst das auf ein beginnendes Geräusch hin. Findest Du danach über einen längeren Zeitraum ( ich meine mehr als 44100 Suchpunkte ) Werte, die unter 100 liegen, deutet das darauf hin, dass seit 1 Sekunde Stille herrscht.


    Ich würde Dir (auch bei viel Zeiteinsatz) voll umfänglich für dieses Projekt auf Syntaxbomb zur Seite stehen.

    ich bin dort auf diesen Seiten auch nur ein normaler User.


    Nachdem der Quellcode von BlitzMax zu Open Source wurde, haben gleich mehrere Gruppen versucht ihn für sich zu vereinnahmen. Daher gibt es jetzt so viele ungepflegte Foren mit veralteten Informationen.


    Die einzige Seite, auf der was los ist, ist SyntaxBomb.com. Und das ist auch gut so! Dort wird Dir immer geholfen, wenn Du Fragen zu BlitzMax hast.

    Da warst Du leider in einem völlig falschen Forum! Die Vorgänger-Sprache hieß BlitzBasic (BB!) und das ist seit 2010 tot. Der Nachfolger heißt BlitzMax NG und ist aktiv (wöchentliche Updates, etc...)


    Download hier:

    BlitzMax_win32_x64_mingw_0.136.3.51.7z


    die englische Homepage dazu ist:


    BlitzMax · Code. Build. Play.
    Code. Build. Play.
    blitzmax.org


    Ich hatte Dir geschrieben, wo unser neues Forum ist:


    BlitzMax / BlitzMax NG
    BlitzMax / BlitzMax NG
    www.syntaxbomb.com


    na, mal sehen, ob du das noch liest...

    Quote

    "...Ich habe die Dateien ungezippt via WeTransfer übermittelt...."

    Bin mir nicht sicher, ob ZIP heute noch einen Sicherheitsgewinn bringt. Ich mach es weiterhin.


    Quote

    "...DAS RECHTE UND LINKE SIGNAL SIND PHASENVERDREHT, NICHT SYNCHRON..."

    Das wäre eine sehr einleuchtende Ursache für die von Dir beschriebenen Probleme! Vorab aber die Frage: Ist Dein Mikrofon wirklich ein STEREO-Mikrofon? Nur dann wäre eine STEREO-Aufnahme sinnvoll. Besser wäre im Falle eines Mikrofons mit einer Kapsel tatsächliche die MONO-Aufnahme.


    Rein technisch könnte dies passieren: Dein MONO-Mikrofonsignal wird symmetrisch aufgeteilt in das Stereo-Kabel geschickt. Das bedeutet, das gleiche Signal wird phasenverdreht auf beide Leitungen ausgegeben. Dies macht man, um elektromagnetische Einstreuung auf der Länge des Kabels zu minimieren. Am Ende einer solchen Anordnung braucht man dann eine DI-Box, um die beiden Signale wieder zusammenzufügen, dabei werden die Einstreuungen entfernt.


    Fehlt die DI-Box gehen die beiden Teilsignale phasenverdreht in die Spuren. Und hört sich das jetzt jemand MONO an, dann löschen sich die Spuren gegenseitig nahezu aus.



    Das Gleiche kann passieren, wenn der Eingang am Computer glaubt, aus einem ankommenden MONO-Signal unbedingt ein PSEUDO-Stereo-Signal machen zu müssen, indem er eine phasenverdrehtes Signal in die Spur 2 legt. Eine Art "Verschlimmbesserung". Alles geht gut, solange keiner sich das Gesamtergebnis MONO anhört.

    die Aufgabe dauerhaft in einen Raum hineinzuhören ohne etwas zu speichern, dann bei der Überschreitung einer Lautstärke eine Aufnahme zu starten und sich den Zeitstempel zu merken... Danach warten, ob noch mehr Geräusche kommen. Nach einiger Zeit entscheiden, dass man jetzt abspeichert, vorher die Aufnahme auf das Hörbare zu stutzen und dann den Schnippsel als MP3 abzuspeichern. Dies alles ist mit BlitzMax mit relativ geringem Aufwand zu bewerkstelligen.


    Ebenso ist die anschließende Auswertung oder grafische Darstellung der Ereignisse relativ harmlos mit BlitzMax zu machen.

    Das Aufnehmen von Songs in einzelnen Teil-Stücken ist sogar die übliche Vorgehensweise. Du kannst AUDACITY in den Einstellungen so ändern, dass jeder TAKE in eine neue Spur führt. D.h. AUDACITY legt dann untereinander die Spuren in Zeilen an.


    Nach der jeweiligen Aufnahme entscheidest Du, ob Du den TAKE behältst oder diese Zeile lieber nochmal löschst und erneut aufnimmst. Die einzelnen Zeilen lassen sich nachträglich verschieben oder sogar kopieren. Um z.b. einen Refrain nicht mehrfach aufnehmen zu müssen.


    Am Ende markierst Du alle Spuren (STRG+A) und wählst im MENÜ - SPUREN - MIX - MISCHEN&RENDERN. Damit wird aus den vielen Einzelzeilen eine Stereo-Spur. Die wird anschließend mit EFFEKTE-HALL um einen realistischen Raumeindruck erweitert und abschließend mit EFFEKTE-NORMALISIEREN auf die MP3-Standard-Lautstärke.


    Ich vermute mal es gibt hier im Forum bereits etliche Artikel zu dem Thema SPUREN, MISCHEN, NORMALISIEREN und HALL. Verwende diese Begriffe doch mal in der SUCHE.

    Ich bin skeptisch, ob das mit VBA zu machen geht. Ich bin in einem Programmierforum für einen anderen BASIC-Dialekt und damit geht es 100% sicher zu machen. Ich selbst habe dafür die Libraries geschrieben und damit ist jede Art von "Aufnahme" oder "Audio-Input" samt Speicherung möglich.


    Das BASIC, das ist verwende heißt BLITZMAX NG und ist kostenlos. Hier findest Du die deutsche Landingpage: www.blitzmax.de. Der Download dauert nur wenige Minuten und es werden keine Dritt-SDKs benötigt. Beim ersten Start wird es mehrere Minuten dauern, bis dein erster Code compiliert ist. Aber dem zweiten Compiling dauert es nur noch Sekunden.


    Wir haben auch ein Forum dazu: www.syntaxbomb.com/. Dort kannst Du Fragen stellen, die dann von Experten binnen weniger Stunden beantwortet werden.


    Dort findest du auch den Artikel zu meiner Audio-Library samt Tutorials:

    MiniAudio-Wrapper for BlitzMax enables WASAPI Playback and Recording + MP3
    MiniAudio-Wrapper for BlitzMax enables WASAPI Playback and Recording + MP3
    www.syntaxbomb.com


    Und hier ist der GitHub für Download der Library + Command Reference und vielen Code-Beispielen:

    GitHub - MidimasterSoft/BlitzMax-Miniaudio-Wrapper: a binding/wrapper for the audio library Miniaudio to the language BlitzMax
    a binding/wrapper for the audio library Miniaudio to the language BlitzMax - GitHub - MidimasterSoft/BlitzMax-Miniaudio-Wrapper: a binding/wrapper for the…
    github.com


    Außerdem gibt es einen DISCORD channel für BLITZMAX-NG. Einladungslink: https://discord.gg/XKtJXAwb

    Was möchtest Du denn aufnehmen? Da ist ja keine Audio-Karte genannt. Auch eine USB-Audio-Device, etc...


    Bei mir ist in diesem Menü auch die normale Soundkarte (Audio-Out) als Loopback aufgeführt. Nur dann kann man auch was z.b. vom Browser oder Youtube aufnehmen.

    Fehlt dieser Eintrag ist definitiv was in Windows dafür verantwortlich.


    War das früher schon mal anders in Deinem AUDACITY auf diesem Computer?


    Welche Einträge hast Du denn bei Wiedergabegerät? Hörst Du überhaupt was bei Youtube im Browser? Oder bei Wiedergabe einer MP3 in Windows?



    Probier mal bei Audio-Host den Eintrag WASAPI auf MME oder Windows-Direct-Sound zu ändern. Je nachdem was da eingestellt ist, gibt es dann bei Aufnahmegerät unterschiedliche Einträge...

    Es gibt auch bei AUDACITY das Feature "Pegelgesteuerte Aufnahme". Wenn die aktiviert ist, dann pausiert AUDACITY die Aufnahme, sobald eine bestimmte Lautstärke unterschritten wird. Dabei wird als Grenzwert ein dB-Wert eingestellt.


    Mach hier den Haken weg:


    MENÜ - Bearbeiten - Einstellungen - Aufnahme - Pegelgesteuerte...

    Ich habe da so eine Vermutung....


    Nehmt Ihr beide direkt ins AUDACITY auf? Oder verwendet Ihr eine andere App? Ich kenne solche "Features" von Apps, die ein Diktiergerät nachempfinden.


    Nutzt Ihr ein externes USB-Audio-Device, das ein solches Feature bietet?

    Oder den internen Microsoft Mikrofon-Preamp samt seiner Einstellmöglichkeiten? Auch der bietet dieses Feature.


    Es gibt auch bei AUDACITY das Feature "Pegelgesteuerte Aufnahme". Wenn das aktiviert ist, dann pausiert AUDACITY, sobald eine Sprechpause erfolgt. Dabei wird als Grenzwert ein dB-Wert eingestellt.


    Es könnte also durchaus sein, dass das Audio-Device so ein Feature nutzt und bei Unterschreiten eines dB-Wertes wirklich echte 0-Werte sendet oder sogar den Datenstrom einstellt. In diesem Fall würde auch AUDACITY dann die Aufnahme pausieren.


    Wenn man als Audio-Host WASAPI verwendet, könnte es sein, dass das Device bei Mikrofonaufnahmen in den Pausen-Modus schaltet, sobald das Audio-Device eine Pause macht. WASAPI stoppt eine Aufnahme, wenn das Device keine digitalen Daten mehr anliefert. Und setzt sie fort, sobald wieder Daten ankommen.