Toon posts:

[VB6] Geluid met een bepaalde frequentie afspelen

Pagina: 1
Acties:
  • 428 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben voor m'n natuurkunde-leraar bezig met een programma waarmee je het Doppler-effect kunt simuleren. Het Doppler effect houd (bijvoorbeeld) in dat je van een langsrijdende ambulance een verschil in toonhoogte hoort.
Dit gaat prima, alleen weet ik niet hoe ik een geluid met een bepaalde frequentie kan afspelen. Ik heb de Beep-API-functie gevonden, die werkt nu, maar het is geen gehoor door zo'n speakertje. En het is niet echt overtuigend.
Vraag is nu dus of er een manier is waarmee ik in VB6 van een WAV-bestand de frequentie kan verhogen/verlagen. Rijd er dan bijv. een auto langs in het programma, dan past-ie dat telkens aan, en dat zou volgens mij het gewenste effect moeten geven.
Ik heb al op Google/GoT gezocht, maar misschien zoek ik verkeerd.

[ Voor 7% gewijzigd door Verwijderd op 08-12-2004 19:59 ]


  • Virgil
  • Registratie: November 2001
  • Laatst online: 17-05 20:10

Virgil

We're not alone

Ik heb niet zon superveelv erstand van Visual basic, kheb het met een 8 afgesloten op de middelbare school :+.
Maar wat zoeken naar "How to play audio files with visual basic" kom ik op een API "PlaySound".

Declaratie:
Visual Basic:
1
2
3
4
Public Declare Function PlaySound Lib "winmm.dll" _
  Alias "PlaySoundA" (ByVallpszName As String, _
  ByValhModule As Long, ByValdwFlags As Long) _
  As Long


http://builder.com.com/5100-6228-5430873.html
De rest kan je hier vinden.

Wat ik dus eigenlijk voorstel. Je neemt zelf van te voren je audiofiles op. En op bepaalde punten in je programma laat je gewoon die audiofiles afspelen. Je genereert dus niet zelf de geluiden met visual basic. Maar die doe je gewoon met een functiegenerator op een input van een geluidskaart of iets in die trend :P

Ik was heel, heeeel vroeger SeRRveR


Verwijderd

Topicstarter
Ik snap volgens mij wel wat je bedoeld, maar het probleem is, hoe kan ik van dat zelf-opgenomen geluid de frequentie aanpassen?

Ik kan misschien het bron-wave-bestand openen, en dan de frequentie veranderen en dat opslaan in een 2de wave-bestand. Probleem is dus, het aanpassen van die frequentie, audio-bestanden afspelen lukt me wel.

  • Virgil
  • Registratie: November 2001
  • Laatst online: 17-05 20:10

Virgil

We're not alone

Je moet in het programma een frequentie opgeven, daar verandert ie naartoe en dan moet dat afgespeeld worden? Hmm, waar ik op doelde is, je neemt je wave files helemaal op van te voren. Met een frequentiegenerator. Hiermee kan je met de knop spelen terwijl hij aanstaat (en je dus aan het opnemen bent) en dus je geluidsfiles opnemen.

Ik was heel, heeeel vroeger SeRRveR


  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 15-05 11:48
Ik zie dat je het wilt gebruiken voor het Doppler effect, je wilt dus een variabele frequentie gebruiken?
Zo ja, geen idee hoe dat zou moeten, ik programmeer geen VB. Ik kan me zo voorstellen dat je de 'samplerate' verandert tijdens het afspelen.
Als het je gaat om een vaste frequentie (die wel anders is dan de originele frequentie), dan zou je hier eens kunnen kijken: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
Zoals je ziet staat daar 'samplerate' tussen. Die kun je aanpassen om zo de frequentie van het geluid aan te passen (hogere samplerate is sneller afspelen is hogere frequentie)

Full-stack webdeveloper in Groningen


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
waveOutOpen/waveOutWrite?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17-05 17:19
Of met mciSend[******] API

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1