Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-05-2007, 11:07   #1
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
[C] File audio WAV: devo leggerne l'Header x saperne la lunghezza in tempo?!

... ho dei file WAV da utilizzare, ma devo usare il C per capire quanti secondi/minuti/ore/ecc ... durano in modo da impiegarli nel modo migliore.

Qualcuno lo ha già fatto per caso?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 11:09   #2
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Utilizzare qualcosa tipo questo:

Codice:
/*	*********************************************
		controllo che il file sia un file WAV in "Canonical Wave Format"
		leggo i primi 12 bytes in cui c'e' il primo header di tipo RIFF	*/

	if(*plenfile<12) {
		fprintf(stderr, "lunghezza file troppo piccola, non c'e' il primo 
header\n");
		fclose(f);
		return(0);
	}
	ris=fread(buf,1,12,f);
	if(ris<12) {
		fprintf(stderr, "letti solo %d byte invece di 12\ntermino\n", ris);
		fclose(f);
		return(0);
	}
	/* nei primi 4 byte ci deve essere "RIFF" */
	ris=strncmp(buf,"RIFF",4);
	if(ris!=0) {
		fprintf(stderr, "il primo campo del file non e' RIFF,  non e' un file 
WAV\ntermino\n");
		fclose(f);
		return(0);
	}
	/* nei byte dal 5 all 8 ci deve essere la lunghezza totale del file */
	filelendentroilfile=littleendian32bit2littleendian(buf+4);
	fprintf(stderr, "filelendentroilfile %ld\n", filelendentroilfile);

	if(filelendentroilfile!=*plenfile) {
		fprintf(stderr, "WARNING: filelendentroilfile=%ld  !=  *plenfile=%ld 
\n", filelendentroilfile, *plenfile );
		fprintf(stderr, "ma continuo lo stesso\n" );
		/*
		fclose(f);
		return(0);
		*/
	}
	/* nei byte dal 9 al 12 ci deve essere "WAVE" */
	ris=strncmp(buf+8,"WAVE",4);
	if(ris!=0) {
		fprintf(stderr, "il terzo campo del file non e' WAVE,  non e' un file 
WAV\ntermino\n");
		fclose(f);
		return(0);
	}
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 12:45   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
io non ho mai gestito il formato WAV, ma per i file formats wotsit.org è la fonte: http://www.wotsit.org/list.asp?search=wav&button=GO%21

ciao

edit: questo link dovrebbe fare al caso tuo: http://www.wotsit.org/getfile.asp?fi...e&sc=232612309
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 12:55   #4
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
Utilizzare qualcosa tipo questo:

Codice:
/*	*********************************************
		controllo che il file sia un file WAV in "Canonical Wave Format"
		leggo i primi 12 bytes in cui c'e' il primo header di tipo RIFF	*/

	if(*plenfile<12) {
		fprintf(stderr, "lunghezza file troppo piccola, non c'e' il primo 
header\n");
		fclose(f);
		return(0);
	}
	ris=fread(buf,1,12,f);
	if(ris<12) {
		fprintf(stderr, "letti solo %d byte invece di 12\ntermino\n", ris);
		fclose(f);
		return(0);
	}
	/* nei primi 4 byte ci deve essere "RIFF" */
	ris=strncmp(buf,"RIFF",4);
	if(ris!=0) {
		fprintf(stderr, "il primo campo del file non e' RIFF,  non e' un file 
WAV\ntermino\n");
		fclose(f);
		return(0);
	}
	/* nei byte dal 5 all 8 ci deve essere la lunghezza totale del file */
	filelendentroilfile=littleendian32bit2littleendian(buf+4);
	fprintf(stderr, "filelendentroilfile %ld\n", filelendentroilfile);

	if(filelendentroilfile!=*plenfile) {
		fprintf(stderr, "WARNING: filelendentroilfile=%ld  !=  *plenfile=%ld 
\n", filelendentroilfile, *plenfile );
		fprintf(stderr, "ma continuo lo stesso\n" );
		/*
		fclose(f);
		return(0);
		*/
	}
	/* nei byte dal 9 al 12 ci deve essere "WAVE" */
	ris=strncmp(buf+8,"WAVE",4);
	if(ris!=0) {
		fprintf(stderr, "il terzo campo del file non e' WAVE,  non e' un file 
WAV\ntermino\n");
		fclose(f);
		return(0);
	}

http://msdn2.microsoft.com/en-us/library/ms713497.aspx


ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 15:22   #5
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
OK, grazie.
Adesso vedo se ci capisco qualcosa.

Ma voi non utilizzate mai:
http://www.google.com/codesearch?hl=it

?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 18:49   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
O_O
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 21:28   #7
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da 71104 Guarda i messaggi
O_O
Si, x cercare codice da riutilizzare o vedere gli altri come fanno le cose tanto per migliorarsi o 1000 altri usi.

Insomma: è inutile reinventare la ruota. NO?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 22:11   #8
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
OK, grazie.
Adesso vedo se ci capisco qualcosa.

Ma voi non utilizzate mai:
http://www.google.com/codesearch?hl=it

?!
cavolo non lo conoscevo, MITICO
io di solito scarico i sorgenti che possono interessarmi e uso cscope, ma così si fa più in fretta
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2007, 22:19   #9
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da recoil Guarda i messaggi
cavolo non lo conoscevo, MITICO
io di solito scarico i sorgenti che possono interessarmi e uso cscope, ma così si fa più in fretta
Si infatti, ma aiutiamo a vicenda.
Quindi sbizzarritevi ad aiutarmi plz:
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
... ho dei file WAV da utilizzare, ma devo usare il C per capire quanti secondi/minuti/ore/ecc ... durano in modo da impiegarli nel modo migliore.

Qualcuno lo ha già fatto per caso?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 08:54   #10
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
http://www.google.com/codesearch?q=wav+reader&hl=it
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 20:54   #11
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da 71104 Guarda i messaggi
edit: questo link dovrebbe fare al caso tuo: http://www.wotsit.org/getfile.asp?fi...e&sc=232612309
Link inesistente.

Tra l'altro da tutti questi link sembra non uscire un campo di TOT bytes per indicare il tempo.
Come lo ricavo?!

Io pensavo che data la frequenza di campionamento costante si potesse tentare qualcosa del tipo:
frequenza di campionamento * numero di campioni?!

Con un MP3 la vita sarebbe + semplice?!
C'è 1 campo esplicito x la lunghezza del file audio?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 22-05-2007 alle 20:59.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 21:05   #12
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
O almeno trovare un programma che posso lanciare con la funzione "System(STRINGA DI COMANDO)" che mi possa restituire come risultato la lunghezza del file audio.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 21:11   #13
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
Link inesistente.

Tra l'altro da tutti questi link sembra non uscire un campo di TOT bytes per indicare il tempo.
Come lo ricavo?!

Io pensavo che data la frequenza di campionamento costante si potesse tentare qualcosa del tipo:
frequenza di campionamento * numero di campioni?!

Con un MP3 la vita sarebbe + semplice?!
C'è 1 campo esplicito x la lunghezza del file audio?!


certo che c'è:

//
TimeWav=Lunghezzafile/W.persec;
//controllo bit
if(W.wBitsPerSample==16)
TimeWav=TimeWav/2;
//numero canali
TimeWav=TimeWav/W.Canali;

forse se guardi il link sopra capiresti meglio...
okay è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 21:17   #14
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da okay Guarda i messaggi
certo che c'è:

//
TimeWav=Lunghezzafile/W.persec;
//controllo bit
if(W.wBitsPerSample==16)
TimeWav=TimeWav/2;
//numero canali
TimeWav=TimeWav/W.Canali;

forse se guardi il link sopra capiresti meglio...
Ti giuro che ho guardato, magari sono io che non capisco, ma guardare ho guardato.
Mi son fatto anche 1 raccolta di quello che ho trovato:
LINK della raccolta.

Ma tu a quale link in particolare stai facendo riferimento?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 22-05-2007 alle 21:23.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 23:21   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
Link inesistente.
ops, è vero: il link è divenuto invalido subito dopo che io ho chiuso il browser, si vede che era correlato alla ricerca che ho fatto. comunque non ho fatto nulla di chè: ho solo cercato "WAV" su wotsit.org.

Quote:
Io pensavo che data la frequenza di campionamento costante si potesse tentare qualcosa del tipo:
frequenza di campionamento * numero di campioni?!
veramente sarebbe una divisione, non una moltiplicazione. esempio: 2 campioni al secondo, totale 4 campioni, risultato 2 secondi; però 2*4 fa 8
dovresti fare 4 / 2, cioè numero di campioni / frequenza (intesa come campioni al secondo).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2007, 18:31   #16
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da okay Guarda i messaggi
certo che c'è:

//
TimeWav=Lunghezzafile/W.persec;
//controllo bit
if(W.wBitsPerSample==16)
TimeWav=TimeWav/2;
//numero canali
TimeWav=TimeWav/W.Canali;

forse se guardi il link sopra capiresti meglio...
Non riesco proprio a capire a che documento stai facendo riferimento.
Io leggendo:



, mi sono fatto questa idea del file wave:

__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2007, 18:41   #17
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Per una migliore soluzione del problema ho incrociato le informazioni:
HELP: devo leggere la lunghezza di files audio WAV con un programmino in C.

... per il ricavo della lunghezza del file audio (in secondi) attraverso algoritmo.
Questo nel qualcaso non riusci a identificare ed ad accedere al fantasmagorico "campo" TimeWav.

[EDIT]

Quote:
Originariamente inviato da cicciociccio Guarda i messaggi
Ok, capito, io ti dico come trovarla poi la applichi tu!
Allora ti spiego come si trova il peso poi con una formula inversa ricavi il tempo.
Prendiamo per esempio un file Wav campionato a 16bit,44.100Hz,stereo(sono 2 canali).
16(bit) x 44.100 (freq.) x 2(canali) x Y (secondi) = peso in bite.
chiaramente se hai un campione con freq. e bit canali diversi basta che li cambi,
es. 8(bit) x 48Khz (freq.) x 1(canale) x Y (secondi) = peso in bite

http://www.lcnet.it/priv/erioforo/mhlpmp3.html qui c'è una buona spiegazione
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 30-05-2007 alle 15:03.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2007, 19:57   #18
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
Per una migliore soluzione del problema ho incrociato le informazioni:
HELP: devo leggere la lunghezza di files audio WAV con un programmino in C.

... per il ricavo della lunghezza del file audio (in secondi) attraverso algoritmo.
Questo nel qualcaso non riusci a identificare ed ad accedere al fantasmagorico "campo" TimeWav.
l'include:
#include <mmsystem.h>

apertura file:
HMMIO hmmio;
MMCKINFO mmckinfoParent;
MMCKINFO mmckinfoSubchunk;


/* Apertura file*/
if ((hmmio = mmioOpen(&WaveName[0], 0, MMIO_READ|MMIO_ALLOCBUF)))
{
/* prendi la lunghezza */
WaveDataSize = mmckinfoSubchunk.cksize;

/* chiudi il file */
mmioClose(hmmio, 0);
}

printf WaveDataSize



ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2007, 21:09   #19
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Un pò di riferimenti alla struttura degli Wav
http://www.sonicspot.com/guide/wavefiles.html
http://ccrma.stanford.edu/courses/42...cts/WaveFormat

Devi andare a trovare il Chunk chiamato 'data' e prendere i 4 byte successivi.
A me però risulta che il campo "datasize" sia in big endian (verificabile aprendo un file wave con un editor esadecimale)
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2007, 07:33   #20
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Ecco quì:

Codice HTML:
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <mmsystem.h>
#include <malloc.h>
#include <tchar.h>
#include <stdlib.h>


TCHAR		WaveName[] = "stereo.wav";
WAVEFORMATEX WaveFormat;
DWORD		WaveDataSize;

int _tmain(int argc, _TCHAR* argv[])
{

	HMMIO       hmmio;             
	MMCKINFO    mmckinfoParent;		
	MMCKINFO    mmckinfoSubchunk;	
	//prima intestazione
	if ((hmmio = mmioOpen(&WaveName[0], 0, MMIO_READ|MMIO_ALLOCBUF)))
	{
		mmckinfoParent.fccType = mmioFOURCC('W', 'A', 'V', 'E'); 
		if (mmioDescend(hmmio, (LPMMCKINFO)&mmckinfoParent, 0, MMIO_FINDRIFF)) 
		{
			return(-2);
		} 

...code

		WaveDataSize = mmckinfoSubchunk.cksize;
		printf("Wave size = %u\n", WaveDataSize);
		mmioClose(hmmio, 0);
		system("pause");
		return(0);
	}
	return(-1);
}
così me lo sono imparato anche io

Ultima modifica di okay : 26-05-2007 alle 07:35.
okay è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Steam Machine: addio al 4K 60 fps. Valve...
Cosa aumenterà di prezzo dopo com...
Altro che 2028: Micron ha blindato prezz...
Come la tecnologia FWA connette i piccol...
Diesel Euro 5, scatta il divieto in quat...
Prime Day, HillMiles scende a 599€ e re...
OpenAI valuta di rinviare l'Ipo al 2027:...
Streaming e Pay TV: ogni famiglia italia...
Volkswagen, Blume prepara maxi-taglio da...
Trenitalia, attacco hacker: esposti alcu...
Adblock for YouTube, 11 milioni di insta...
Assassin's Creed Black Flag Resynced pot...
Gli USA dicono no a Polestar, sì a Volvo...
Steam Machine dovrebbe costare 700 dolla...
Microsoft 365, l'Antitrust apre un'istru...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v