Toner uden pause imellem

Tags:    delphi

Jeg fandt engang denne MakeSound procedure:

http://www.delphitricks.com/source-code/multimedia/play_sound_through_a_sound_card.html

Problemet er, at når man afspiller flere toner efter hinanden, er der en kort pause mellem hver tone. Det skal der ikke være. Er der nogen som kan fortælle mig, hvordan denne procedure omskrives sådan, at tonerne afspilles uden pause mellem hver tone? Eller andre lignende procedurer som kan det samme. Lyden skal afspilles gennem lydkortet, og ikke den interne højttaler. Derfor kan jeg ikke bruge windows.beep. Det skal være sådan, at hvis man afspiller 10 toner med 100 ms. duration, skal det tage præcis 1 sekund.

Mvh. Dan Nielsen.



2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Jeg ved intet om Delphi, men jeg tror du skal bruge wave* funktionerne:
http://msdn.microsoft.com/en-us/library/dd743834%28v=VS.85%29.aspx

Jeg har et simpelt C++ eksempel her:
http://damb.dk/snip/playtone.html

For at undgå pauser mellem de enkelte toner skal du sætte flere i kø på én gang og bruge callback funktionen til at starte den næste, inden den forrige er færdig. Jeg kan nok godt strikke et komplet eksempel sammen i C++, hvis du kan bruge det til at regne ud hvordan du gør i Delphi.



Jeg fandt denne ToneGen komponent som kunne klare opgaven: http://www.vclcomponents.com/Delphi/Multimedia/TToneGen-info.html

Det færdige program kan hennes fra denne side: http://www.dannie-soft.dk/index.php?page=CCIR-Player




t