PDA

View Full Version : COme far emettere da PC delle frequenze acustiche


visodont
28-12-2002, 16:16
--------------------------------------------------------------------------------

Con il Visual Basic 6 vorrei sapere come fare per fare emettere al PC un segnale sonoro con una frequenza proporzionale al valore di una casella di testo, valore che può variare da 1000 a 1100 circa.

Questo perchè vorrei evitare di guardare il monitor e valutare ad orecchio le variazioni dei valori del textBox.

Nessuno mi ha saputo dire nulla, se ci riuscite voi siete dei "Draghi" !


Un'altra domanda : Dopo il Visual Basic 6 è uscito un aggiornamento, non so come si chiami.

1 Che differenze ci sono tra l'aggiornamento e il Visual Basic 6.
2 I progetti del VB6 possono essere utilizzati senza modifiche ?

Altre volte mi avete già tolto dagli "impicci" !

Grazie mille ancora,

Zeno Pagliai - visodont
27/12/2002

misterx
28-12-2002, 19:48
io non sono un drago ma dovrebbe esistere

PlayTone(frequenza,durata)

visodont
29-12-2002, 11:36
Grazie mille provero subito !
visodont

visodont
29-12-2002, 12:48
Originally posted by "visodont"

Grazie mille provero subito !
visodont


Porca l'oca ! Ho provato e non funziona. La parola Playtone non esiste in VB Non so come fare.
grazie comunque,
visodont

misterx
29-12-2002, 19:11
forse allora è un metodo:


blablabla.PlayTone(....,.....)



prova anche questa API

Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

For I = 0 to 4000 Step 10

Beep I, 50

Next I

visodont
30-12-2002, 13:36
Grazie ancora, proverò la tua API ma se non funziona mi suicido !

A parte gli scherzi, se funziona sono riuscito a fare con il PC una cosa che si fa con un'attrezzatura da 4000 Euro come minimo e con una spesa di soli 180 Euro, alla faccia della speculazione esagerata !

Per ora buon 2003 e molto,molto, molto oltre !

visodont

cionci
30-12-2002, 18:24
Spiegaci...spiegaci :)

visodont
30-12-2002, 19:21
Spiego subito !

Si tratta di emulare un dispositivo per testare gli ago-punti ( agopuntura ) che serve per rivelare intolleranze alimentari e altro.

Il prezzo di questi dispositivi si aggira intorno ai 4000/5000 Euro e anche di più !!!!!.......
Sono riuscito a farlo con il PC , un software da me creato e tramite un'interfaccia ADC dal prezzo di 180 Euro. Credo sia un ottimissimo risultato !

Il software che ho creato fa molte cose in più degli apparecchi che vendono a quel prezzo da rapina, l'unica cosa che non so fare è fargli emettere una frequenza proporzionale ai valori di un textBox. che si aggirano intorno a 1000 / 1100
Non è che sia fontamentale per l'uso che se ne deve fare ma sarebbe utile per valutare ad orecchio l'andamento dei valori nel tempo.

Proverò API che qualcuno mi ha mandata, ma non so se saprò collocarla esattamente nel programma. Sono un autodidatta e ho delle lacune notevoli con il VB6.

Se qualcuno ha delle idee su come far emette queste frequenze acustiche proporzionali al valore variabile del textBox me lo faccia sapere, lo ringrazierò in eterno ! Beh non esageriamo... in etermo non è possibile.... ma per un bel po' di tempo spero di poterlo fare.

Cordiali saluti a tutti, buona fine d' anno e buon principio 2003 e oltre !......
visodont :p

visodont
17-01-2003, 15:26
Purtroppo ne con l' API che mi hai gentilmente inviato e nemmeno con .playTone funziona.

Si ode sempre un beep sempre eguale e basta. Sono scosolato, triste, quasi da suicidio......

Grazie comunque,
Visodont

cionci
18-01-2003, 09:49
A me con l'API funziona bene... Sicuramente non sarà una cosa molto precisa (visto che usa lo speaker) però funziona...

cater
27-01-2003, 10:22
Anche a me funziona benissimo.

Mi è già venuta in mente qualche idea su come usarla.

Grazie!

visodont
27-01-2003, 22:13
Beao te,
visto che ti funziona perchè non mi mandi il listato ?
Grazie,
visodont

cater
01-02-2003, 12:31
Innanzitutto scusa l'assenza prolungata, ma non mi collego molto spesso...

Allora, il listato completo è il seguente.:


Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Boolean


Private Sub Form_Load()
Dim I As Integer

For I = 0 To 4000 Step 500

Beep I, 50

Next I

End Sub


Il prog. si limita a generare il suono all'evento load del form.
E'soltanto un esempio.

Ho però il sospetto che questa cara funzioncina non funzioni sotto win98..

Ciao!

cater
01-02-2003, 12:31
Err...

visodont
01-02-2003, 15:58
Ti ringrazio ma su windows 98 fa solamente beep è basta.

Cosa c'è dopo il Visual Basic6 ? un'altro visual Basic 7 o cosa ?. vale la pena passare al eventuasle nuova versione ?
Grazie mille,
Visodont

cater
02-02-2003, 20:30
Purtroppo VB6 non c'entra. IMHO dovrebbe essere un prob. dovuto alla differente versione di kernel32.dll tra win98 e win2k/XP; infatti l'API "beep" richiama esplicitamente la ' lib "kernel32" '.

Non riesci proprio a provare il tuo prog in un PC senza win98?

Ti allego un prog. di prova che ho appena fatto, dimostra quante cosette simpatiche si possono fare con l'API beep.

Ciao e alla prox

StefanoCsl
03-02-2003, 13:53
Se ho capito bene, vuoi riprodurre un segnale acustico tanto lungo quanto il valore numerico che hai in un campo di testo, giusto?!

Se è così puoi fare in questo modo, pongo un esempio:

Consideriamo che nel campo di testo "txtValore" ci sia ad esempio 200
quindi txtValore = 200

nel programma non devi fare altro che scrivere:


for i=0 to val(txtvalore)
Beep
next i

Cmq Beep funziona anche in Windows98 e Windows95 (appena provato con quest'ultimo), ma non ho mai messo nessuna API, io scrivo semplicemente "Beep" e lui esegue un segnale acustico.

PS: se non ho capito quello che vuoi fare per favore riscrivimelo e provo ad aiutarti :)

Stefano

MimmoEv
03-02-2003, 14:04
Se preferisci usare le casse e la scheda audio con un effetto più professionale rispetto al beep dello speaker puoi usare un programma che a riga di comando (shell "nomeprogramma.exe") generi un wav con determinate frequenze.
Ad esempio "Frequency master generator v 0.93" http://www.hot.ee/smpman/fmg/

Puoi creare un file di testo adatto allo scopo (leggi la guida del programma, in 10 minuti impari cosa ti serve) e poi esegui il programma (è pressochè istantaneo) poi non fai altro che eseguire il wav generato (esiste la funzione api sndPlaySound vedi msdn.microsoft.com).

Complesso ma ottieni un risultato veramente professionale :D

Spero di essere stato utile!
Ciaooo

visodont
06-02-2003, 10:04
Ho provato ad usare il programmino ( Windows 98 )che ha inviasto cater ma continuo a udire sempre miserevoli "beep" senza nessuna variazione di frequenza o di durata.

Quasi quasi rinuncio all' impresa ! Però è un peccato !
Visodont

cionci
06-02-2003, 10:07
Non è che hai messo il connettore dello speaker al contrario ?!?!?
Potresti provare questo eseguibile ?
Suona 3 note...una bassa, una + alta e di nuovo una bassa... Se non senti la differenza allora è lo speker al contrario oppure rotto...

cionci
06-02-2003, 10:45
Ho trovato questo programma che genera un frequenza scelta...
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=32566&lngWId=1
Se vuoi ti puoi mettere a modificarlo...

visodont
06-02-2003, 10:55
lo speaker non può essere messo al contrario perchè è uno spinotto coassiale e così l'ho comprato.
Che ci posso fare, mi sa che devo rinunciare davvero, comunque grazie !
Visodont

cionci
06-02-2003, 11:02
Guarda che con i metodi precedenti l'audio usciva dal PC speaker (quello interno al case e connesso sulla scheda madre)...non dalla scheda audio... L'ultimo metodo che vedi sopra esce dalla scheda audio...