README for the folder ?\SoundUtl\*.*
----------------------------------------------------------------------------------

Author:  Wolfgang Buescher (DL4YHF)
Date  :  2020-12-17


This folder contains the C/C++ sourcecodes of a various building blocks used
in some of the author's projects, for example:

 - Spectrum Lab
 - the WOLF GUI (WOLF = Weak Signal Operation on Low Frequency)
 - the "Sound Utilities" (described in SoundUtilityInfo_01.txt)
 - and various little test programs, like the "Audio Message Tester"


Most of the applications in this folder were compiled with DevC++
  (which is a free and light-weight C/C++ compiler for windows,
   based on MinGW, which in turn is based on GNU C),
 but some of them can be compiled with Borland C++Builder, too.
 Project files with the extension .dev are for DevC++,
 while Borland (C++Builder) projects have the extension .bpr .


Applications
============================================================

 SerInput :  Reads data from an external A/D converter,
             and sends them to any application which can
             handle the audio-FILE-based protocol
             as described in SoundUtilityInfo_01.txt .
             Details about the hardware can be found
             on the author's website (look for
        "DL4YHF PIC-based A/D converter for the serial port"
             to find it with your favourite search engine). 

  - - - - - - - - - - - - - - - - - - - 

 SndInput :  Reads data from the soundcard (WAVE-IN),   
             and sends them to any application which can
             handle the audio-FILE-based protocol
             as described in SoundUtilityInfo_01.txt .

  - - - - - - - - - - - - - - - - - - - 

 SndOutput:  Reads audio samples from the audio-FILE-based
             protocol described in SoundUtilityInfo_01.txt,
             and sends them to a soundcard (WAVE-OUT) .


  - - - - - - - - - - - - - - - - - - - 

 AUDIO MESSAGE TESTER: This is just a tiny test/demo
             for sending a continuous audio stream
             via WM_COPYDATA messages. The sourcecode is
             AudioMessageTest_main.c (windows main app),
             compiled with DevC++ only, since it doesn't
             need a GUI : It just sends out a sine/cosine
             wave at some exotic sampling rate.
             The program Spectrum Lab acts as the receiver.
             The format of the audio data blocks is described
             in the file 'audiomsg.h' . 

   A few general notes about the communication
   between SpectrumLab (or, one fine day, similar
   audio-processing applications) and other
   "external" applications can be found in the
   Spectrum Lab online-help system. Look for
     \html\ext_comms.htm in the directory where
   you have installed Spectrum Lab.


   By the way, the same principle -sending audio streams
   through WM_COPYDATA messages- is used in the Winamp
   output plugin ("out_slab.dll") which sends an audio stream
   from Winamp to Spectrum Lab. Details about this
   can also be found on the author's website, look for
   "DL4YHF  Spectrum Lab winamp output plugin" .

  - - - - - - - - - - - - - - - - - - - 

Latest modifications:
   2022-10-17 : Modified the types for internal processing.
                Modified/added a few 'data type codes',
                details only in SoundUtilityInfo_49.txt .
                Made the tiny 'control windows' of the
                utilities a bit larger, because for some
                reason (size of the "window icons"?),
                the caption displayed in the window title
                (now "SndInput" and "SndOutput") were truncated
                when running the programs under Win8/10/11
                with the usual font scaling.
   2020-12-17 : Opening the "audio volume" control panel
                from the "Gain"/"Vol"-buttons in SndInput/
                SndOutpt.exe running again, because MS
                have eliminated the good old 'sndvol.exe'.
                Now, depending on the windows version,
                the soundcard-input-tool tries to invoke
      > "rundll32.exe Shell32.dll,Control_RunDLL mmsys.cpl,,1"
                which seemed to work - until they re-invent
                the wheel again.



<EOF>

  