' ********************************************************** ' G+ * ' * * ' * by Prof.Dr.Godfried-Willem RAES * ' * procedure declaration file for use of the G_wave.DLL * ' * Translate this file to use the library in C or C++ * ' * last update: 03.03.2021 * ' ********************************************************** #INCLUDE THIS ONCE #IF NOT %DEF(%g_wave_inc) ' **** general exported GMT procedures and functions ' ************************************************************************* ' * AUDIO I/O related functions and procedures * ' * cource code modules: g_wave.inc & g_wave.bi * ' ************************************************************************* DECLARE FUNCTION Init_g_wave LIB "g_wave.dll" (gh AS GMT_HANDLES, App AS ApplicationType, BYREF Tk() AS Taak, BYREF Tx() AS EXTRAINFO) AS LONG DECLARE SUB PrepareWaveIOmenu LIB "g_wave.dll" () ' 26.06.2002 DECLARE FUNCTION GetAvailableAuxDevs$ LIB "g_wave.dll" () ' returns a text block to be displayed in a window DECLARE SUB GetAuxPorts LIB "g_wave.dll" (mp() AS STRING) DECLARE SUB GetWaveOutPorts LIB "g_wave.dll" (mp() AS STRING) ' returns names of ports in an array DECLARE SUB GetWaveInPorts LIB "g_wave.dll" (mp() AS STRING) DECLARE SUB PrepareWaveFunctions LIB "g_wave.dll" (WavHdr() AS WAVEHDR, TrackStatus AS AudioTrackStatus) DECLARE SUB SetAudio LIB "g_wave.dll" (BYREF Au AS AUDIOTYPE) DECLARE SUB CheckAudio LIB "g_wave.dll" (BYREF Au AS AUDIOTYPE, BYREF App AS ApplicationType) DECLARE FUNCTION GetAudioFormat LIB "g_wave.dll" () AS DWORD ' returns a pointer to the Audioformat structure in the DLL DECLARE FUNCTION OpenAudioInputDevice LIB "g_wave.dll" (BYVAL devicenumber AS LONG, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION OpenAudioOutputDevice LIB "g_wave.dll" (BYVAL devicenumber AS LONG, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION StartAudioOutStreamThread LIB "g_wave.dll" () AS LONG DECLARE FUNCTION ButnSW_StartAudioStreaming LIB "g_wave.dll" () AS LONG ' 03.05.2000 - buttonhandler DECLARE FUNCTION StartWaveOutStream LIB "g_wave.dll" (BYVAL param AS DWORD) AS LONG DECLARE FUNCTION StartWaveInStream LIB "g_wave.dll" (BYVAL param AS DWORD) AS LONG ' 14.04.2000 DECLARE FUNCTION GetFreeAudioTrack LIB "g_wave.dll" () AS LONG DECLARE FUNCTION SizeAudioTrack LIB "g_wave.dll" (BYVAL tracknr AS LONG, BYVAL d AS LONG) AS LONG DECLARE FUNCTION ReSizeAudioTrack LIB "g_wave.dll" (BYVAL tracknr AS LONG, BYVAL d AS LONG) AS LONG DECLARE FUNCTION PlayAudioTrack LIB "g_wave.dll" (BYVAL tracknr AS LONG, BYVAL flags AS DWORD) AS LONG DECLARE FUNCTION PlayWaveFile LIB "g_wave.dll" (filnam AS ASCIIZ, BYVAL flags AS WORD) AS LONG DECLARE FUNCTION RecordAudioSample LIB "g_wave.dll" (BYVAL duur AS DWORD) AS LONG DECLARE FUNCTION RetrieveSample LIB "g_wave.dll" (BYVAL duur AS DWORD) AS LONG ' 14.04.2000 DECLARE FUNCTION RetrieveInputWave LIB "g_wave.dll" (BYVAL param AS DWORD, BYREF Sp() AS SINGLE) AS LONG ' 26.04.2000 DECLARE FUNCTION ReadWaveData LIB "g_wave.dll" (filenaam AS ASCIIZ) AS LONG DECLARE FUNCTION Track2Seq LIB "g_wave.dll" (BYVAL track AS LONG, BYVAL lr AS LONG) AS STRING '22.06.2001 DECLARE FUNCTION Track2SeqEx LIB "g_wave.dll" (BYVAL track AS LONG, BYVAL lr AS LONG, BYVAL granul AS LONG, BYVAL NrNotes AS LONG, BYVAL lfreq AS LONG, BYVAL hifreq AS LONG) AS STRING DECLARE FUNCTION SaveAudioTrack LIB "g_wave.dll" (filenaam AS ASCIIZ, BYVAL Tracknr AS LONG) AS LONG DECLARE SUB AppendAudioTrack LIB "g_wave.dll" (BYVAL Track0 AS LONG, BYVAL Track1 AS LONG) ' 13.04.2000 DECLARE SUB BlankAudioBuffer LIB "g_wave.dll" (BYREF WavBufHead AS WAVEHDR) DECLARE FUNCTION CopyAudioTrack LIB "g_wave.dll" (BYVAL Track AS LONG, BYVAL duur AS LONG) AS LONG ' 13.04.2000 DECLARE SUB RingModulate LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR , BYVAL freqLeft AS WORD, BYVAL freqRight AS WORD) DECLARE SUB RingModulateTrack LIB "g_wave.dll" (BYVAL Tracknr AS LONG, BYVAL freqLeft AS WORD, BYVAL freqRight AS WORD) ' 09.03.2000 DECLARE SUB AmplitudeModulate LIB "g_wave.dll" (BYVAL TrackNr AS LONG,BYVAL fl AS SINGLE,_ BYVAL fr AS SINGLE, BYVAL dl AS SINGLE, BYVAL dr AS SINGLE) ' 09.03.2000 DECLARE FUNCTION WaveDuration LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR) AS DWORD DECLARE FUNCTION TrackDuration LIB "g_wave.dll" (BYVAL Tracknr AS LONG) AS DWORD DECLARE SUB CrossModulate LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB Varispeed LIB "g_wave.dll" (BYREF WaveIbufferheader AS WAVEHDR, BYREF WaveObufferheader AS WAVEHDR) DECLARE SUB Reverse LIB "g_wave.dll" (BYREF WaveIbufferheader AS WAVEHDR, BYREF WaveObufferheader AS WAVEHDR) DECLARE SUB CrossTimeModulate LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB DeglitchStart LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB DeglitchTail LIB "g_wave.dll" (BYREF Wavebufferheader AS WAVEHDR) '[16.10.99] DECLARE SUB DeglitchTrack LIB "g_wave.dll" (BYVAL TrackNr AS LONG) ' [06.03.2000] DECLARE FUNCTION Mix2Tracks LIB "g_wave.dll" (BYVAL Track1 AS LONG, BYVAL Track2 AS LONG) AS LONG ' 19.03.2000 - no doc yet. DECLARE SUB RemoveDC LIB "g_wave.dll" (BYREF WaveBufferheader AS WAVEHDR) '[16.10.99] DECLARE FUNCTION NormalizeWave LIB "g_wave.dll" (BYREF Wh AS WaveHdr, BYVAL procent AS DWORD) AS LONG '10.04.2000 DECLARE FUNCTION StereoNormaliseWave LIB "g_wave.dll" (BYREF Wh AS WaveHdr, BYVAL l AS DWORD, BYVAL r AS DWORD) AS LONG DECLARE SUB TrimWave LIB "g_wave.dll" (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) ' [18.10.99] DECLARE SUB TrimTrack LIB "g_wave.dll" (BYVAL TrackNr AS LONG, BYVAL floor AS WORD) ' [06.03.2000] DECLARE SUB FadeTrack LIB "g_wave.dll" (BYVAL Tracknr AS LONG, BYVAL FadeInTime AS DWORD, BYVAL FadeOutTime AS DWORD) '[06.03.2000] DECLARE FUNCTION RTrimWave LIB "g_wave.dll" (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) AS DWORD '[18.10.99] DECLARE FUNCTION LTrimWave LIB "g_wave.dll" (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) AS DWORD '[18.10.99] DECLARE SUB Wave2Enveloppe LIB "g_wave.dll" (BYREF Wh AS WAVEHDR, Env() AS SINGLE, factorial AS STRING *5,_ ch AS STRING * 1, linlog AS STRING *3) DECLARE SUB WaveAddReverb LIB "g_wave.dll" (BYREF Wb AS WAVEHDR, BYVAL NulT AS DWORD, BYVAL faktor AS SINGLE) '[21.10.99] DECLARE FUNCTION WriteAudioTrack LIB "g_wave.dll" (filenaam AS ASCIIZ, Whd AS WAVEHDR) AS LONG DECLARE SUB WaveDFT LIB "g_wave.dll" (BYVAL Track AS LONG, BYVAL offset AS DWORD, BYVAL channel AS DWORD, Sp!()) '13.04.2000 DECLARE SUB WaveDFTHiRes LIB "g_wave.dll" (BYVAL Track AS LONG, BYVAL offset AS DWORD, BYVAL channel AS DWORD, BYREF Sp!(), lb AS LONG, ub AS LONG) DECLARE FUNCTION LPF LIB "g_wave.dll" (BYREF WH AS WaveHdr, BYVAL fakt AS SINGLE) AS LONG ' wave synthesis functions: [tested in cellopi ] - new since 10.03.2000 DECLARE FUNCTION GenerateSineWave LIB "g_wave.dll"(BYVAL Note AS BYTE, BYVAL Velo AS BYTE, BYVAL Pan AS BYTE, BYVAL d AS DWORD) AS LONG DECLARE FUNCTION GenerateHarmWave LIB "g_wave.dll" (H AS HarmType,BYVAL pan AS BYTE, BYVAL d AS DWORD) AS LONG ' 10.03.2000 DECLARE FUNCTION GenerateFMdiadWave LIB "g_wave.dll" (BYVAL f1 AS SINGLE, BYVAL f2 AS SINGLE,_ BYVAL level AS SINGLE, BYVAL pan AS SINGLE, BYVAL d AS DWORD) AS LONG ' 04.10.2012: DECLARE FUNCTION GenerateStringSound LIB "g_wave.dll" (BYVAL Note AS SINGLE, BYVAL Velo AS BYTE, BYVAL k AS SINGLE, BYVAL s AS SINGLE, BYVAL d AS DWORD) AS LONG DECLARE FUNCTION GenerateAcousticSound LIB "g_wave.dll" (BYVAL Note AS SINGLE, BYVAL Velo AS BYTE, BYVAL k AS SINGLE, BYVAL s AS SINGLE, BYVAL d AS DWORD,BYREF Formant AS FormantWaveType)AS LONG ' support for granular synthesis: 10.04.2000 DECLARE FUNCTION CalcNrOfGrains LIB "g_wave.dll" (BYVAL tracknr AS LONG, BYVAL Grainlength AS DWORD) AS DWORD DECLARE SUB GranulateTrack LIB "g_wave.dll" (BYVAL track AS LONG, BYVAL Env AS DWORD, BYREF GranAr() AS INTEGER) DECLARE FUNCTION GranuSynth LIB "g_wave.dll" (BYREF GranAr() AS INTEGER, BYVAL Rep AS DWORD, BYVAL STRETCH AS SINGLE) AS LONG DECLARE FUNCTION GranuSynth2 LIB "g_wave.dll" (BYREF GranAr() AS INTEGER, BYVAL overlapfactor AS SINGLE, BYVAL duration AS DWORD) AS LONG DECLARE FUNCTION StretchTrack LIB "g_wave.dll" (BYVAL track AS LONG, BYVAL Grainlength AS DWORD, BYVAL STRETCH AS SINGLE) AS LONG DECLARE FUNCTION GranPitchShift LIB "g_wave.dll" (BYVAL track AS LONG, BYVAL interval AS SINGLE) AS LONG '11.04.2000 ' for robot sound sample lookups: ' for version 3.0 - added 21.02.2020 DECLARE FUNCTION So_Wave0 LIB "g_wave.dll" (BYVAL p0 AS BYTE, BYREF Wave0() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave1 LIB "g_wave.dll" (BYVAL p1 AS BYTE, BYREF Wave1() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave2 LIB "g_wave.dll" (BYVAL p2 AS BYTE, BYREF Wave2() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave3 LIB "g_wave.dll" (BYVAL p3 AS BYTE, BYREF Wave3() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave4 LIB "g_wave.dll" (BYVAL p4 AS BYTE, BYREF Wave4() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave5 LIB "g_wave.dll" (BYVAL p5 AS BYTE, BYREF Wave5() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave6 LIB "g_wave.dll" (BYVAL p6 AS BYTE, BYREF Wave6() AS WORD) AS INTEGER 'DECLARE FUNCTION So_Wave7 LIB "g_wave.dll" (BYVAL p7 AS BYTE, BYREF Wave7() AS WORD) AS INTEGER ' for - added 28.02.2020 DECLARE FUNCTION Flut_Wave0 LIB "g_wave.dll" (BYVAL p0 AS BYTE, BYREF Wave0() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave1 LIB "g_wave.dll" (BYVAL p1 AS BYTE, BYREF Wave1() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave2 LIB "g_wave.dll" (BYVAL p2 AS BYTE, BYREF Wave2() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave3 LIB "g_wave.dll" (BYVAL p3 AS BYTE, BYREF Wave3() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave4 LIB "g_wave.dll" (BYVAL p4 AS BYTE, BYREF Wave4() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave5 LIB "g_wave.dll" (BYVAL p5 AS BYTE, BYREF Wave5() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave6 LIB "g_wave.dll" (BYVAL p6 AS BYTE, BYREF Wave6() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave7 LIB "g_wave.dll" (BYVAL p7 AS BYTE, BYREF Wave7() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave8 LIB "g_wave.dll" (BYVAL p8 AS BYTE, BYREF Wave8() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave9 LIB "g_wave.dll" (BYVAL p9 AS BYTE, BYREF Wave9() AS WORD) AS INTEGER ' for - added 03.2021 DECLARE FUNCTION Hunt_Wave0 LIB "g_wave.dll" (BYVAL p AS BYTE, BYREF Wave0() AS WORD) AS INTEGER ' 12.12.2000 - Version 5.21 DECLARE FUNCTION iiGestureWave LIB "g_wave.dll" (BYVAL samprate AS LONG,BYREF Bufx() AS INTEGER,BYREF Bufy()AS INTEGER,BYREF Bufz()AS INTEGER,BYVAL nrsamp AS DWORD) AS LONG 'the following functions used to be in g_math.inc but where moved here when we made a separate dll 'out of g_wave becauser they use wave-specific structures DECLARE FUNCTION IsolateSinglePeriod LIB "g_wave.dll" (BYVAL Track AS LONG, Sp() AS SINGLE, BYVAL param AS DWORD) AS SINGLE DECLARE SUB GetWaveProperties LIB "g_wave.dll" (BYREF Sp() AS SINGLE, BYREF WavProp AS WaveProperties) 'helper function for ShowMenuSelections in g_main DECLARE FUNCTION WaveDevicesTxt LIB "g_wave.dll" AS STRING 'publish handles DECLARE FUNCTION GethWo LIB "g_Wave.dll" (i AS LONG) AS DWORD DECLARE FUNCTION GethWi LIB "g_Wave.dll" (i AS LONG) AS DWORD DECLARE SUB g_Wave_getbuttons LIB "g_Wave.dll" (BYREF ButnSW() AS SwitchController, BYREF ButnOS() AS OneShotController) 'debug DECLARE SUB g_wave_Dummy LIB "g_wave.dll" 'for so - read wave file to array without need of tracks or audio handels DECLARE FUNCTION WaveFileToArray LIB "g_wave.dll"(filenaam AS ASCIIZ, arr() AS INTEGER ) AS LONG #ELSE DECLARE FUNCTION Init_g_wave(gh AS GMT_HANDLES, App AS ApplicationType, BYREF Tk() AS Taak, BYREF Tx() AS EXTRAINFO) AS LONG DECLARE SUB PrepareWaveIOmenu () ' 26.06.2002 DECLARE FUNCTION GetAvailableAuxDevs$ () ' returns a text block to be displayed in a window DECLARE SUB GetAuxPorts (mp() AS STRING) DECLARE SUB GetWaveOutPorts (mp() AS STRING) ' returns names of ports in an array DECLARE SUB GetWaveInPorts (mp() AS STRING) DECLARE SUB PrepareWaveFunctions (WavHdr() AS WAVEHDR, TrackStatus AS AudioTrackStatus) DECLARE SUB SetAudio (BYREF Au AS AUDIOTYPE) DECLARE SUB CheckAudio (BYREF Au AS AUDIOTYPE, BYREF App AS ApplicationType) DECLARE FUNCTION GetAudioFormat () AS DWORD ' returns a pointer to the Audioformat structure in the DLL DECLARE FUNCTION OpenAudioInputDevice (BYVAL devicenumber AS LONG, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION OpenAudioOutputDevice (BYVAL devicenumber AS LONG, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION StartAudioOutStreamThread () AS LONG DECLARE FUNCTION ButnSW_StartAudioStreaming () AS LONG ' 03.05.2000 - buttonhandler DECLARE FUNCTION StartWaveOutStream (BYVAL param AS DWORD) AS LONG DECLARE FUNCTION StartWaveInStream (BYVAL param AS DWORD) AS LONG ' 14.04.2000 DECLARE FUNCTION GetFreeAudioTrack () AS LONG DECLARE FUNCTION SizeAudioTrack (BYVAL tracknr AS LONG, BYVAL d AS LONG) AS LONG DECLARE FUNCTION ReSizeAudioTrack (BYVAL tracknr AS LONG, BYVAL d AS LONG) AS LONG DECLARE FUNCTION PlayAudioTrack (BYVAL tracknr AS LONG, BYVAL flags AS DWORD) AS LONG DECLARE FUNCTION PlayWaveFile (filnam AS ASCIIZ, BYVAL flags AS WORD) AS LONG DECLARE FUNCTION RecordAudioSample (BYVAL duur AS DWORD) AS LONG DECLARE FUNCTION RetrieveSample (BYVAL duur AS DWORD) AS LONG ' 14.04.2000 DECLARE FUNCTION RetrieveInputWave (BYVAL param AS DWORD, BYREF Sp() AS SINGLE) AS LONG ' 26.04.2000 DECLARE FUNCTION ReadWaveData (filenaam AS ASCIIZ) AS LONG DECLARE FUNCTION Track2Seq (BYVAL track AS LONG, BYVAL lr AS LONG) AS STRING '22.06.2001 DECLARE FUNCTION Track2SeqEx (BYVAL track AS LONG, BYVAL lr AS LONG, BYVAL granul AS LONG, BYVAL NrNotes AS LONG, BYVAL lfreq AS LONG, BYVAL hifreq AS LONG) AS STRING DECLARE FUNCTION SaveAudioTrack (filenaam AS ASCIIZ, BYVAL Tracknr AS LONG) AS LONG DECLARE SUB AppendAudioTrack (BYVAL Track0 AS LONG, BYVAL Track1 AS LONG) ' 13.04.2000 DECLARE SUB BlankAudioBuffer (BYREF WavBufHead AS WAVEHDR) DECLARE FUNCTION CopyAudioTrack (BYVAL Track AS LONG, BYVAL duur AS LONG) AS LONG ' 13.04.2000 DECLARE SUB RingModulate (BYREF Wavebufferheader AS WAVEHDR , BYVAL freqLeft AS WORD, BYVAL freqRight AS WORD) DECLARE SUB RingModulateTrack (BYVAL Tracknr AS LONG, BYVAL freqLeft AS WORD, BYVAL freqRight AS WORD) ' 09.03.2000 DECLARE SUB AmplitudeModulate (BYVAL TrackNr AS LONG,BYVAL fl AS SINGLE,_ BYVAL fr AS SINGLE, BYVAL dl AS SINGLE, BYVAL dr AS SINGLE) ' 09.03.2000 DECLARE FUNCTION WaveDuration (BYREF Wavebufferheader AS WAVEHDR) AS DWORD DECLARE FUNCTION TrackDuration (BYVAL Tracknr AS LONG) AS DWORD DECLARE SUB CrossModulate (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB Varispeed (BYREF WaveIbufferheader AS WAVEHDR, BYREF WaveObufferheader AS WAVEHDR) DECLARE SUB Reverse (BYREF WaveIbufferheader AS WAVEHDR, BYREF WaveObufferheader AS WAVEHDR) DECLARE SUB CrossTimeModulate (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB DeglitchStart (BYREF Wavebufferheader AS WAVEHDR) DECLARE SUB DeglitchTail (BYREF Wavebufferheader AS WAVEHDR) '[16.10.99] DECLARE SUB DeglitchTrack (BYVAL TrackNr AS LONG) ' [06.03.2000] DECLARE FUNCTION Mix2Tracks (BYVAL Track1 AS LONG, BYVAL Track2 AS LONG) AS LONG ' 19.03.2000 - no doc yet. DECLARE SUB RemoveDC (BYREF WaveBufferheader AS WAVEHDR) '[16.10.99] DECLARE FUNCTION NormalizeWave (BYREF Wh AS WaveHdr, BYVAL procent AS DWORD) AS LONG '10.04.2000 DECLARE FUNCTION StereoNormaliseWave (BYREF Wh AS WaveHdr, BYVAL l AS DWORD, BYVAL r AS DWORD) AS LONG DECLARE SUB TrimWave (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) ' [18.10.99] DECLARE SUB TrimTrack (BYVAL TrackNr AS LONG, BYVAL floor AS WORD) ' [06.03.2000] DECLARE SUB FadeTrack (BYVAL Tracknr AS LONG, BYVAL FadeInTime AS DWORD, BYVAL FadeOutTime AS DWORD) '[06.03.2000] DECLARE FUNCTION RTrimWave (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) AS DWORD '[18.10.99] DECLARE FUNCTION LTrimWave (BYREF Wh AS WAVEHDR, BYVAL floor AS WORD) AS DWORD '[18.10.99] DECLARE SUB Wave2Enveloppe (BYREF Wh AS WAVEHDR, Env() AS SINGLE, factorial AS STRING *5,_ ch AS STRING * 1, linlog AS STRING *3) DECLARE SUB WaveAddReverb (BYREF Wb AS WAVEHDR, BYVAL NulT AS DWORD, BYVAL faktor AS SINGLE) '[21.10.99] DECLARE FUNCTION WriteAudioTrack (filenaam AS ASCIIZ, Whd AS WAVEHDR) AS LONG DECLARE SUB WaveDFT (BYVAL Track AS LONG, BYVAL offset AS DWORD, BYVAL channel AS DWORD, Sp!()) '13.04.2000 DECLARE SUB WaveDFTHiRes (BYVAL Track AS LONG, BYVAL offset AS DWORD, BYVAL channel AS DWORD, BYREF Sp!(), lb AS LONG, ub AS LONG) DECLARE FUNCTION LPF (BYREF WH AS WaveHdr, BYVAL fakt AS SINGLE) AS LONG ' wave synthesis functions: [tested in cellopi ] - new since 10.03.2000 DECLARE FUNCTION GenerateSineWave (BYVAL Note AS BYTE, BYVAL Velo AS BYTE, BYVAL Pan AS BYTE, BYVAL d AS DWORD) AS LONG DECLARE FUNCTION GenerateHarmWave (H AS HarmType,BYVAL pan AS BYTE, BYVAL d AS DWORD) AS LONG ' 10.03.2000 DECLARE FUNCTION GenerateFMdiadWave (BYVAL f1 AS SINGLE, BYVAL f2 AS SINGLE,_ BYVAL level AS SINGLE, BYVAL pan AS SINGLE, BYVAL d AS DWORD) AS LONG ' 04.10.2012: DECLARE FUNCTION GenerateStringSound (BYVAL Note AS SINGLE, BYVAL Velo AS BYTE, BYVAL k AS SINGLE, BYVAL s AS SINGLE, BYVAL d AS DWORD) AS LONG DECLARE FUNCTION GenerateAcousticSound(BYVAL Note AS SINGLE, BYVAL Velo AS BYTE, BYVAL k AS SINGLE, BYVAL s AS SINGLE, BYVAL d AS DWORD,BYREF Formant AS FormantWaveType)AS LONG ' support for granular synthesis: 10.04.2000 DECLARE FUNCTION CalcNrOfGrains (BYVAL tracknr AS LONG, BYVAL Grainlength AS DWORD) AS DWORD DECLARE SUB GranulateTrack (BYVAL track AS LONG, BYVAL Env AS DWORD, BYREF GranAr() AS INTEGER) DECLARE FUNCTION GranuSynth (BYREF GranAr() AS INTEGER, BYVAL Rep AS DWORD, BYVAL STRETCH AS SINGLE) AS LONG DECLARE FUNCTION GranuSynth2 (BYREF GranAr() AS INTEGER, BYVAL overlapfactor AS SINGLE, BYVAL duration AS DWORD) AS LONG DECLARE FUNCTION StretchTrack (BYVAL track AS LONG, BYVAL Grainlength AS DWORD, BYVAL STRETCH AS SINGLE) AS LONG DECLARE FUNCTION GranPitchShift (BYVAL track AS LONG, BYVAL interval AS SINGLE) AS LONG '11.04.2000 ' for version 3.0 - added 21.02.2020 DECLARE FUNCTION So_Wave0 (BYVAL p0 AS BYTE, BYREF Wave0() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave1 (BYVAL p1 AS BYTE, BYREF Wave1() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave2 (BYVAL p2 AS BYTE, BYREF Wave2() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave3 (BYVAL p3 AS BYTE, BYREF Wave3() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave4 (BYVAL p4 AS BYTE, BYREF Wave4() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave5 (BYVAL p5 AS BYTE, BYREF Wave5() AS WORD) AS INTEGER DECLARE FUNCTION So_Wave6 (BYVAL p6 AS BYTE, BYREF Wave6() AS WORD) AS INTEGER 'DECLARE FUNCTION So_Wave7 (BYVAL p7 AS BYTE, BYREF Wave7() AS WORD) AS INTEGER ' for , added 28.02.2020 DECLARE FUNCTION Flut_Wave0 (BYVAL p0 AS BYTE, BYREF Wave0() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave1 (BYVAL p1 AS BYTE, BYREF Wave1() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave2 (BYVAL p2 AS BYTE, BYREF Wave2() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave3 (BYVAL p3 AS BYTE, BYREF Wave3() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave4 (BYVAL p4 AS BYTE, BYREF Wave4() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave5 (BYVAL p5 AS BYTE, BYREF Wave5() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave6 (BYVAL p6 AS BYTE, BYREF Wave6() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave7 (BYVAL p7 AS BYTE, BYREF Wave7() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave8 (BYVAL p8 AS BYTE, BYREF Wave8() AS WORD) AS INTEGER DECLARE FUNCTION Flut_Wave9 (BYVAL p9 AS BYTE, BYREF Wave9() AS WORD) AS INTEGER ' 12.12.2000 - Version 5.21 DECLARE FUNCTION iiGestureWave (BYVAL samprate AS LONG,BYREF Bufx() AS INTEGER,BYREF Bufy()AS INTEGER,BYREF Bufz()AS INTEGER,BYVAL nrsamp AS DWORD) AS LONG DECLARE FUNCTION IsolateSinglePeriod (BYVAL Track AS LONG, Sp() AS SINGLE, BYVAL param AS DWORD) AS SINGLE DECLARE SUB GetWaveProperties (BYREF Sp() AS SINGLE, BYREF WavProp AS WaveProperties) DECLARE FUNCTION OpenAudioOutputDeviceWithCallbackWindow (BYVAL devicenumber AS DWORD, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION OpenAudioInputDeviceWithCallbackWindow (BYVAL devicenumber AS DWORD, TrackStatus AS AudioTrackStatus) AS DWORD DECLARE FUNCTION WaveDevicesTxt AS STRING DECLARE FUNCTION GethWo (i AS LONG) AS DWORD DECLARE FUNCTION GethWi (i AS LONG) AS DWORD DECLARE SUB g_Wave_getbuttons(BYREF ButnSW() AS SwitchController, BYREF ButnOS() AS OneShotController) DECLARE SUB g_wave_Dummy 'for so - read wave file to array without need of tracks or audio handels DECLARE FUNCTION WaveFileToArray (filenaam AS ASCIIZ, arr() AS INTEGER ) AS LONG #ENDIF