DCALICEK7 - Notice

DCALICEK7 est un programme pour Windows permettant de convertir les cassettes Alice :
- Du format Windows PCM (.wav) vers le format image de cassette (.k7) spécifique à l'émulateur DCAlice
- Du format image de cassette (.k7) spécifique à l'émulateur DCAlice vers le format Windows PCM (.wav)

Version : 2011.04
Auteur : Daniel Coulom
Site web : alice32.free.fr

Avertissement

Chaque nouvelle version apporte théoriquement des améliorations et des corrections d'erreurs.
Elle peut aussi provoquer de nouvelles anomalies.
Le signalement de tout comportement anormal est important pour permettre les corrections.
En cas de problème majeur, vous pouvez toujours utiliser les versions précédentes.

Anti-virus

Certains anti-virus voient parfois des menaces dans des programmes parfaitement inoffensifs, en
particulier lorsque les exécutables sont compactés avec UPX. Dans le cas de dcalicek7 il n'y a strictement
rien à craindre : ni virus, ni cheval de Troie, ni logiciel espion, ni publicité, ni appel de site internet.
Si votre anti-virus trouve le programme suspect, c'est un "faux positif". Dans ce cas, vous devez signaler
l'anomalie à votre fournisseur, pour qu'il puisse corriger ses règles de détection.

Installation et utilisation de dcalicek7

Procédure d'installation

Décompressez le fichier .zip dans un répertoire. DCALICEK7 ne modifie pas la base de registre, ni aucun
fichier de votre ordinateur. C'est un programme portable, pouvant être installé sur un support amovible, tel
un disque externe ou une clé USB, et déplacé d'un ordinateur à un autre sans aucune difficulté.

Utilisation

- Lancer le programme par un double-clic sur le nom de l'exécutable : dcalicek7.exe.
- Sélectionner le fichier à convertir en utilisant le bouton "Parcourir...".
- Sélectionner le type de conversion k7>wav ou wav>k7, au moyen des boutons radio.
- Lancer la conversion en cliquant sur le bouton en bas à droite de la fenêtre.
- Lire attentivement les messages et répondre si nécessaire aux boîtes de dialogue.
Dans la plupart des cas les paramètres par défaut conviennent.
Sinon consultez les paragraphes ci-dessous pour comprendre leur signification.

Paramètres modifiables par l'utilisateur pour la conversion de .wav vers .k7

Seuil initial

La distinction entre les bits 0 et les bits 1 est réalisée par comparaison de leur période à un seuil, exprimé en
nombre d'échantillons à 44100 Hz. Par exemple, un seuil de 30 correspond à une période de 680 microsecondes.
Le seuil est ajusté automatiquement en fonction de la période des octets de synchronisation qui précèdent chaque
bloc. Le seuil initial permet la détection de ces octets de synchronisation. S'il est trop éloigné de la valeur optimale,
le risque est de ne pas pouvoir reconnaître les octets de synchronisation, et donc de ne pas pouvoir lire le bloc.

Niveau zéro

Chaque échantillon a une valeur dans l'intervalle 0-255. Le niveau zéro est la valeur de l'échantillon en l'absence
de signal (par défaut : 128). La période des bits est mesurée entre deux passages par le niveau zéro. Si le signal
n'est pas symétrique, en particulier si une composante continue est ajoutée, la modification du niveau zéro peut
améliorer les chances de décoder le fichier .wav sans erreur.

Amplitude du bruit

Le bruit de fond, ou "souffle", est une composante inévitable d'un enregistrement sur bande magnétique. S'il est
pris en compte pour le décodage il peut, dans certains cas heureusement très rares, être interprété comme des
bits valides. Pour éviter cet inconvénient, on peut définir le niveau du bruit : c'est l'amplitude minimum des signaux
qui seront décodés. En dessous de cette amplitude, mesurée sur une échelle de 0 à 255, le signal est considéré
comme du bruit de fond et est ignoré. Le niveau de bruit est directement proportionnel au niveau d'enregistrement,
il convient donc de l'ajuster en conséquence.

Inversion de phase

Dans un enregistrement sur cassette, un bit est codé par une période, composée d'une alternance positive suivie
d'une alternance négative. Si le signal est inversé, par exemple à cause d'un mauvais câblage, l'alternance positive
va devenir la deuxième alternance d'un bit et l'alternance négative sera la première alternance du bit suivant. Ce
mélange de deux bits successifs va considérablement perturber le décodage. On peut le voir dans l'histogramme
des périodes des signaux, quand il apparaît un pic de moindre hauteur entre les deux pics correspondant aux bits
1 et 0. Dans ce cas, il faut cocher la case "Inversion de phase" pour rétablir le sens habituel des alternances.

Amélioration des transitions

Dans certaines conditions d'enregistrement, dépendant essentiellement du matériel utilisé, on observe un changement
de fréquence progressif entre deux bits de valeurs différentes. Par exemple, quand un bit long est suivi d'un bit court,
la deuxième alternance du bit long va être légèrement raccourcie. Inversement, quand un bit court est suivi d'un bit
long, la deuxième alternance du bit court va être légèrement allongée. Si la case "Amélioration des transitions" est
cochée, le programme corrige automatiquement ce défaut.

Paramètres modifiables par l'utilisateur pour la conversion de .k7 vers .wav

Niveau zéro

C'est le seul paramètre utilisé pour la conversion dans ce sens. Il fixe la valeur des échantillons pendant les périodes
de silence avant chaque bloc et en fin d'enregistrement.

Structure des fichiers en entrée et en sortie de dcalicek7

Structure des fichiers .wav

En entrée les fichiers .wav PCM peuvent avoir n'importe quel format valide : mono ou stéréo, 8 ou 16 bits par échantillon,
fréquence 22050 kHz ou plus. Dans le cas d'un fichier stéréo, seul le canal droit est décodé. Le meilleur compromis est
44100 Hz 8 bits monophonique. En sortie les fichiers créés sont exclusivement dans ce dernier format. Un fichier .wav
est composé d'une en-tête (voir la description ci-dessous), suivie des échantillons sur un ou plusieurs octets en fonction
du format choisi.

// WAV header structure. See ftp://ftp.isi.edu/in-notes/rfc2361.txt
// for information regarding format codes.
struct wavhdr {
  char riff[4];           // "RIFF"
  SINT32 file_size;       // in bytes
  char wave[4];           // "WAVE"
  char fmt[4];            // "fmt "
  SINT32 chunk_size;      // in bytes (16 for PCM)
  SINT16 format_tag;      // 1=PCM, 2=ADPCM, 3=IEEE float, 6=A-Law, 7=Mu-Law
  SINT16 num_chans;       // 1=mono, 2=stereo
  SINT32 sample_rate;
  SINT32 bytes_per_sec;
  SINT16 bytes_per_samp;  // 2=16-bit mono, 4=16-bit stereo
  SINT16 bits_per_samp;
  char data[4];           // "data"
  SINT32 data_length;     // in bytes
};

Structure des fichiers .k7

Un fichier .k7 est composé de blocs successifs. Chaque bloc est précédé d'un octet de synchronisation, de valeur $55.
A la fin du bloc, il y a un autre octet $55. En outre, les fichiers .k7 générés par dcalicek7 contiennent, avant l'octet de
synchronisation, une en-tête de 8 octets, identifiée par un premier octet contenant la valeur hexadécimale $dc. Le
deuxième octet, toujours à zéro, est la nature du bloc (0 = bloc standard Alice). Les octets 3 et 4 contiennent le nombre
d'octets de synchronisation : pour simplifier, un seul octet de synchronisation est présent dans le fichier .k7, mais en
réalité leur nombre peut varier. Les octets 5 à 8 contiennent le nombre d'échantillons du silence avant le bloc.
En l'absence de cette en-tête de 8 octets, par exemple lorsque le fichier .k7 a été créé par un autre programme, la longueur
du silence et le nombre d'octets de synchronisation ne sont pas connus. Les valeurs suivantes sont prises par défaut :
- Silence : 882000 échantillons pour le bloc $00, 16000 échantillons pour le premier bloc $01, 128 pour les blocs suivants.
- Synchronisation : 128 octets pour le bloc $00, 128 octets pour le premier bloc $01, 1 octet pour les blocs suivants.

Historique

Version 2011.04


© 2011 - Daniel Coulom