Autore Topic: [risolto]determinare lunghezza file audio  (Letto 2882 volte)

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: determinare lunghezza file audio
« Risposta #15 il: 04 Gennaio 2010, 12:21:06 »
Comunque a me Val("23.56") restituisce 23 e non NULL. Val non ha problemi con il punto
separatore dei decimali. Uso Gambas 2.16.

Offline luca1202

  • Gambero
  • **
  • Post: 95
    • Mostra profilo
    • http://luca1202.wordpress.com
Re: determinare lunghezza file audio
« Risposta #16 il: 04 Gennaio 2010, 12:22:41 »
ho già risolto!!

avevo provato con replace ma il problema persisteva allora ho seguito un'altra strada!!

ho preso la parte prima della virgola tramite la funzione "left" di quello ho preso il valore usando la funzione Val(stringa) e a quel valore ho aggiunto 1, in questo modo la barra di progresso ora funziona correttamente!!
ottimo grazie a tutti per la pazienza  :-D
il mio progetto -> SITO

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: [risolto]determinare lunghezza file audio
« Risposta #17 il: 04 Gennaio 2010, 15:08:44 »
Ma sei sicuro che il left copra tutti i tipi di dati? Hai tenuto presente che il numero di cifre prima della virgola varia?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [risolto]determinare lunghezza file audio
« Risposta #18 il: 14 Settembre 2012, 12:34:22 »
Un segnale per poter essere ricostruito a partire dai suoi campioni, deve essere campionato con una "frequenza di campionamento" fs pari al doppio della banda del segnale, ossia più precisamente della frequenza più alta contenuta nello spettro del segnale di partenza (Teorema di Nyquist-Shannon). Nel caso di segnali audio, poiché la banda di udibilita' degli esseri umani si estende da 0Hz a 20000Hz, avremo:
 fs=2*20000=40000Hz
(per motivi tecnici i CD vengono campionati con fs=44000Hz=44KHz).

Se ad ogni campione associamo n bit, allora abbiamo il "bit-rate" Br=n*fs
(nei CD: 16 bit=>Br=16*44000 bit/secondo)

Quindi se il brano è mono a 16 bit campionato con frequenza fs e dura T secondi, significa che - ad esempio - un lettore CD legge un numero di bit pari a: "numero di bit del brano=T*Br";
se fosse stereo allora basterebbe moltiplicare per 2
mono: bit_letti=T*Br
stereo: bit_letti=2*T*Br

Se conosciamo la dimensione in bit del brano(bit_letti), si usa la formula inversa:
 T=bit_letti/Br, se mono
 T=(bit_letti/Br)/2, se stereo
e non resta che calcolare Br in base ai dati disponibili del brano (mono, stereo, frequenza di campionamento).


In ogni caso rinvio a questa pagina della nostra Wiki:

   https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gestione_dei_dati_audio_e_dei_file_audio


« Ultima modifica: 03 Marzo 2021, 00:47:41 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [risolto]determinare lunghezza file audio
« Risposta #19 il: 14 Settembre 2012, 17:43:13 »
Se parti da una stringa, puoi usare Split(valore, ",") per dividere in intero e mantissa.
In alternativa, se sei sicuro di avere sempre un valore numerico, puoi convertirlo con CFloat(Replace(value,",",".")), sostituendo la virgola con un punto.
Il formato di conversione dipende molto dal Local, ovvero dall'impostazione di lingua del proprio sistema e nazione. In Italia si usa appunto la virgola per rappresentare un valore in virgola mobile. Cosa diversa in USA...
Per ovviare a questo, o si tratta tutto a livello binario, ovvero con tipi di dato adatti (che non è sempre possibile), oppure creare funzioni apposite di conversione.