Fichiers images de cassettes au format .lep

Tout ce qui concerne le logiciel original et sa sauvegarde avec entre autre la régénération des disquettes ou autres supports physiques.

Modérateurs: Papy.G, fneck, Carl

Re: Fichiers images de cassettes au format .lep

Messagede Daniel » 11 Juin 2017 17:43

Non, mais ça serait facile à faire en partant des spécifications du fichier .lep

Voici un petit bout de code pour transformer le fichier .lep en .wav :

Code: Tout sélectionner
FILE *fwav;      //fichier .wav
FILE *flep;      //fichier .lep

//Conversion du fichier .lep en .wav //////////////////////////////////////////
void Makewav()
{
int i, imax;
int octet, sample;
Display("");
//ouverture du fichier .lep
flep = fopen(inputfilename, "rb");
if(flep == NULL)
{
  Display("Erreur d'ouverture du fichier .lep");
  Display("Conversion abandonnée sur erreur.");
  return;
}
//controle de non existence du fichier .wav
strcpy(outputfilename, inputfilename);
for(i = strlen(outputfilename); i > 0; i--)
  if(outputfilename[i] == '.') {outputfilename[i] = 0; break;}
strcat(outputfilename, ".wav");
if((fwav = fopen(outputfilename, "rb")) != NULL)
if(Prompt(1) != 0)
{
  Display("Conversion abandonnée par l'utilisateur.");
  return;
}
if(fwav != NULL) fclose(fwav);
//ouverture du fichier .lep
if((fwav = fopen(outputfilename, "wb+")) == NULL)
{
  Display("Erreur d'ouverture du fichier .wav");
  Display("Conversion abandonnée sur erreur.");
  return;
}
//conversion du fichier .lep
Display("Debut de la conversion");
Writewavheader();
sample = 232;
while((octet = fgetc(flep)) != EOF)
{
  if(octet == 0) imax = 127;
  else
  {
   if(octet < 128) {sample = 232; imax = octet;}
   if(octet > 127) {sample = 24; imax = 256 - octet;}
  }
  imax *= UNITE * 441;  //nombre d'echantillons * 10000
  imax += 5000;         //pour l'arrondi a la valeur la plus proche
  imax /= 10000;        //nombre d'echantillons
  for(i = 0; i < imax; i++) fputc(sample, fwav);
}
//mise a jour de l'entete du fichier wav
i = ftell(fwav) - 8;
sprintf(string, "Longueur du fichier .wav : %i octets", i);
Display(string);
fseek(fwav, 4, SEEK_SET);
fwrite (&i, 4, 1, fwav);
i -= 37;
fseek(fwav, 40, SEEK_SET);
fwrite (&i, 4, 1, fwav);

//affichage d'un message de fin
Display("");
Display("Conversion terminée sans erreur.");
}


Et la fonction de création de l'entête du fichier .wav :

Code: Tout sélectionner
// Ecriture de l'en-tete du fichier .wav///////////////////////////////////////
void Writewavheader()
{
int i;
char entete[44] =  //44100 Hz
{0x52,0x49,0x46,0x46,0x00,0x00,0x00,0x00,0x57,0x41,0x56,0x45,0x66,0x6d,0x74,
  0x20,0x10,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x44,0xac,0x00,0x00,0x44,0xac,
  0x00,0x00,0x01,0x00,0x08,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00};
for(i = 0; i < sizeof(entete); i++) fputc(entete[i], fwav);
}
Daniel
L'obstacle augmente mon ardeur.
Daniel
 
Messages: 9293
Inscription: 01 Mai 2007 18:30
Localisation: Vaucluse

Re: Fichiers images de cassettes au format .lep

Messagede Falkor » 12 Juin 2017 08:00

Super merci ! Je prépare et je diffuse un petit utilitaire.
Avatar de l’utilisateur
Falkor
 
Messages: 418
Inscription: 28 Juin 2010 12:09
Localisation: Cluny, Saône et Loire

Re: Fichiers images de cassettes au format .lep

Messagede Daniel » 12 Juin 2017 09:20

Dans le code il faut évidemment ajouter la déclaration et l'initialisation des noms de fichiers, et la fonction Display(char *).
Et surtout il manque cette définition :
Code: Tout sélectionner
#define UNITE 50    //unite de la duree en microsecondes
Daniel
L'obstacle augmente mon ardeur.
Daniel
 
Messages: 9293
Inscription: 01 Mai 2007 18:30
Localisation: Vaucluse

Re: Fichiers images de cassettes au format .lep

Messagede Falkor » 12 Juin 2017 12:12

Ok. Et "Prompt()" c'est quoi ?
Avatar de l’utilisateur
Falkor
 
Messages: 418
Inscription: 28 Juin 2010 12:09
Localisation: Cluny, Saône et Loire

Re: Fichiers images de cassettes au format .lep

Messagede Daniel » 12 Juin 2017 22:01

La fonction Prompt() affiche un message pour signaler que le fichier à créer existe déjà. L'utilisateur peut répondre "Abandonner" ou "Continuer". Ce n'est pas très important, on peut systématiquement écraser le fichier s'il existe.
Daniel
L'obstacle augmente mon ardeur.
Daniel
 
Messages: 9293
Inscription: 01 Mai 2007 18:30
Localisation: Vaucluse

Re: Fichiers images de cassettes au format .lep

Messagede Carl » 12 Juin 2017 23:00

la solution Arduino SDLEP est supérieur au Wav PC car dans un cas le remote est géré et pas dans l'autre...et je peux dire que la gestion remote est fort appréciable...voir indispensable.

Carl
Avatar de l’utilisateur
Carl
Modérateur
 
Messages: 9626
Inscription: 08 Avr 2007 13:21
Localisation: www.dole.org

Précédente

Retourner vers Software original

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron