Gå til innhold

C#: Hvordan få tilgang til lydsignaler (utgang)?


Anbefalte innlegg

Hei, jeg er på jakt etter en måte å få tak i informasjon om lydsignalene som sendes ut til lydkort/3,5mm jack/hodetelefonutgang. Poenget skal være å få lysdiodene i føttene av PC-kabinettet mitt til å blinke i takt med f.eks. musikken som spilles av på PC-en. Jeg har allerede fått dette til elektronisk, men nå vil jeg prøve å få dette til kun ved hjelp av en USB-kabel som er koblet til en Arduino.

 

Informasjonen om lydsignalet f.eks. frekvens og amplitude, vil jeg helst kunne sende som en tallverdi over en seriell port/COM-port.

 

Jeg har nylig satt meg inn i kommunikasjonsmulighetene mellom C# og Arduino, så alt jeg trenger nå, er mer kunnskap om hvordan jeg skal få tilgang til informasjon om lydsignalene.

 

Håper dere er villige til å dele kunnskapen deres, eller har noen nyttige kilder jeg kan få bruk for :)

Endret av Meh.
Lenke til kommentar
Videoannonse
Annonse

Har ikke jobbet med dette selv, men antar denne kan brukes: http://www.codeproject.com/KB/audio-video/FftGuitarTuner.aspx

 

Det programmet som beskrives der benytter vel mikrofon-inngangen for å få informasjon om lydsignalet? Jeg er ute etter informasjon om lydene som windows sender ut til utgangene, uten å måtte benytte mikrofon e.l.

 

Under Vista og nyere er dette sikkert enklere ettersom hardware mixing er erstattet med software mixing. Tidligere var det vanlig for noen lydkortprodusenter å lage en WhatUHear innspillingsenhet, men under Vista mistenker jeg at du har tilgang til audio ut som en strøm.

 

Mer info her:

Audio API for Windows Vista

 

Programmet skal kjøres på en masking med Windows 7.

 

Jeg har ikke programmert c# så veldig lenge, så jeg må nok ha litt mer nøyaktig informasjon om hva jeg skal skrive, for at jeg skal kunne få til dette :blush:

Lenke til kommentar

Dette var interessant! Her har du litt å begynne med: http://www.dreamincode.net/forums/topic/45693-controlling-sound-volume-in-c%23/

 

Tutorialen forklarer mye om Win32 API og hvordan den kan brukes til å styre lyden med, håper det hjelper deg å forstå hvordan du kan bruke lyden fra PC-en videre. Når det er sagt så har Windows en innebygd lydopptaker. Denne fungerer da omvendt, slik at lyden blir spilt inn via mikrofoninngangen, men kanskje noe du kan bruke likevel?

 

Jeg mener å huske at jeg kom over noen som gjorde mye av det samme du prøver å gjøre, men kodet prosjektet i Java. Skal søke i prosjektbiblioteket hjemme og se om jeg finner det.

Lenke til kommentar

Tror du vil slite litt med dette, da Microsoft blokkerte dette i Windows 7 mtp DRM. Men med "litt" googling tenker jeg at det finnes løsninger på dette.

 

Om det kan være mulig å få tilgang til tilstrekkelig informasjon fra Foobar2000, Spotify eller Wimp vil jo det kunne bli et godt alternativ. Men jeg vet ikke helt om eller hvordan dette kan la seg gjøre.

 

Kan lage en hardware hack og koble line-out til mik-inngangen da.

 

Tenker du på en enkel jack-jack kabel som kobler kontakten for lyd ut (grønn/hodetelefoner/fronthøyttalere) til kontakten for lyd inn (rosa/grønn)?

 

En slik løsning kan bli et lite problem om jeg f.eks. skal snakke med noen på Skype e.l. samtidig.

 

EDIT:

 

Dette var interessant! Her har du litt å begynne med: http://www.dreamincode.net/forums/topic/45693-controlling-sound-volume-in-c%23/

 

Tutorialen forklarer mye om Win32 API og hvordan den kan brukes til å styre lyden med, håper det hjelper deg å forstå hvordan du kan bruke lyden fra PC-en videre. Når det er sagt så har Windows en innebygd lydopptaker. Denne fungerer da omvendt, slik at lyden blir spilt inn via mikrofoninngangen, men kanskje noe du kan bruke likevel?

 

Jeg mener å huske at jeg kom over noen som gjorde mye av det samme du prøver å gjøre, men kodet prosjektet i Java. Skal søke i prosjektbiblioteket hjemme og se om jeg finner det.

 

Takk for linken, jeg skal se nærmere på det når jeg får tid til det.

Endret av Meh.
Lenke til kommentar

Fant prosjektet jeg tenkte på: Link til audio-mixer i C#

 

Vet at det ikke er 100% det du er ute etter, men du kan bruke noe derfra. Det ser ut til at folk som driver med lydmanipulering velger å laste/streame filene de vil spille i stedet for å lytte på en output enhet, aner ikke hvorfor. Ved å laste/streame filer kan du i alle fall bruke funksjonene beskrevet i API-en til å f.eks. lage et array med samplingsverdiene, for så å sende de til en USB utgang. Da får du det du er ute etter :)

 

Lykke til med prosjektet!

Endret av dejanV
Lenke til kommentar

Kan lage en hardware hack og koble line-out til mik-inngangen da.

 

Tenker du på en enkel jack-jack kabel som kobler kontakten for lyd ut (grønn/hodetelefoner/fronthøyttalere) til kontakten for lyd inn (rosa/grønn)?

 

En slik løsning kan bli et lite problem om jeg f.eks. skal snakke med noen på Skype e.l. samtidig.

Seriekobling med motstand. Bare passe på at signalet ikke går over 5v eller hva nå enn DA-en til lydkortet bruker. Uansett en del herk da.

 

Men Windows er istand til å gjøre det du er ute etter(Volume Mixer viser lydnivået), så da må det på en eller annen måte være mulig for deg også.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...