Forum Oric
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Derniers sujets
» rs
OSDK & gnu/Linux... EmptyDim 31 Mar 2024 - 14:35 par kenneth

» Bla Bla général du Jury
OSDK & gnu/Linux... EmptyJeu 21 Mar 2024 - 8:51 par Dom50

» carte mère Oric (re)tracée
OSDK & gnu/Linux... EmptyMar 5 Mar 2024 - 18:54 par kenneth

» Meurtre à Grande Vitesse
OSDK & gnu/Linux... EmptyDim 25 Fév 2024 - 5:09 par Iurius

» ORIC-1 sur LE BON COIN
OSDK & gnu/Linux... EmptyVen 23 Fév 2024 - 23:01 par Mcar

» ORIC ATMOS sur LE BON COIN
OSDK & gnu/Linux... EmptyDim 4 Fév 2024 - 12:06 par kiwilevrai

» Problème d'affichage des couleurs avec un Oric Atmos
OSDK & gnu/Linux... EmptySam 27 Jan 2024 - 1:26 par pierbail

» Bienvenue dans le Forum des Oriciens
OSDK & gnu/Linux... EmptyMar 9 Jan 2024 - 12:33 par Dom50

» Rencontre avec Laurant Weill, co-fondateur de Loriciel, et mon garçon de 12 ans
OSDK & gnu/Linux... EmptyVen 29 Déc 2023 - 14:13 par Arcade-des-Monts

» Bonnes fêtes
OSDK & gnu/Linux... EmptyMar 26 Déc 2023 - 10:21 par Dom50

» Murders in Venice / Meutres à Venise
OSDK & gnu/Linux... EmptySam 18 Nov 2023 - 22:44 par retroric

» Un clavier PS/2 pour tester un ORIC
OSDK & gnu/Linux... EmptyDim 27 Aoû 2023 - 9:49 par Voyageur

» Disquette 3" Sedoric
OSDK & gnu/Linux... EmptyMar 1 Aoû 2023 - 14:22 par AtomeX

» faire un 6502 avec des phototransistor
OSDK & gnu/Linux... EmptyDim 16 Juil 2023 - 17:26 par Voyageur

» Oricutron linux et DSK
OSDK & gnu/Linux... EmptyJeu 29 Juin 2023 - 18:34 par Voyageur

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 242 membres enregistrés
L'utilisateur enregistré le plus récent est AIRBUS44

Nos membres ont posté un total de 8922 messages dans 811 sujets
Sites Sympas

> Culture Club


Le Deal du moment : -50%
-50% Baskets Nike Air Huarache
Voir le deal
64.99 €

OSDK & gnu/Linux...

5 participants

Aller en bas

OSDK & gnu/Linux... Empty OSDK & gnu/Linux...

Message par ]0[v] Mar 17 Sep 2019 - 12:28

ce post pourra servir de base à tous ceux/celles qui utilise linux/bsd comme vrai OS Twisted Evil (un petit troll)
plus sérieusement un lieu pour trouver des solutions...

mon problème est le suivant actuellement encore sous Debian GNU/Linux 9.8 (stretch), oui je migre progressivement tout sous Void-linux car j'en ai marre de cette saleté mal conçu de systemd une hérésie architecturale dans le monde des UN*X...
Et d'autre part l'OSDK 1.10
Lorsque je souhaite convertir un .TAP en .WAV j'utilise la commande suivante:
$(which wine) /home/.../projects/oric/osdk_1_10/Bin/Tap2Wav.exe fileIN.tap fileOUT.wav
hors cela ne me produit aucun fichire de sortie?...
j'ai un peu de mal a en comprendre la raison?
La fenêtre de dosBox se ferme trop vite pour que je puisse avoir le temps de lire un éventuel message d'erreur
Est ce que qq1 aurait une piste?
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Dbug Mar 17 Sep 2019 - 20:51

Wine -> Windows
DosBox -> DOS

DOS =/= Windows

Tous les outils (sauf erreur) du OSDK sont recompilés sous Visual Studio et sont donc des exécutables 100% Win32, ca ne peut pas tourner sous dosbox
Dbug
Dbug

Messages : 248
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mar 17 Sep 2019 - 22:19

Tout à fait d'accord avec toi mais si tu regardes bien la ligne de commande je lance 'Tap2Wav.exe' via Wine et c'est l'appli qui me lance dosBox. Je t'avoue que je ne sais pas pourquoi?..
Sais tu où l'on peut trouver les sources de tous ces utilitaires?
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mar 17 Sep 2019 - 23:24

j'ai trouvé les sources Laughing
depôt SVN
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mer 18 Sep 2019 - 8:59

Ooops! Shocked Crying or Very sad
j'ai pas trouvé...
le repo : "svn - Revision 1527: .."
ne donne pas de version de Tap2Wav? pourquoi le trouve-t-on dans les version de l'OSDK alors?
Est ce que qq1 sait où se cache les sources de Tap2Wav??? Suspect
Laughing
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par froggy Mer 18 Sep 2019 - 10:41

fouille le forum, j'avais posté un script Bash pour faire ça sans passer par un émulateur windows
froggy
froggy

Messages : 154
Date d'inscription : 14/07/2014
Localisation : London

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mer 18 Sep 2019 - 11:07

]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mer 18 Sep 2019 - 11:54

@froggy
Echec!
'tape_converter' c'est une version 64bits...
Est ce que ton Mac pourrait me générer une version 32bits
OU
mieux encore y a t il les source qq part et je le builderais
pour linux pour obtenir un format ELF
Merci
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par iss Mer 18 Sep 2019 - 13:17

All sources here: https://sourceforge.net/projects/euphorictools/files/Tape%20tools/WAV%20format/

tap2wav.c
Code:
/* tap2wav tool by F.Frances*/
/* version 1.1 adapted by Simon & F.Frances 08/2007*/

#include <stdio.h>

FILE *in,*out;
int file_size;
int speed=4800;
int silence=0;

struct {
 char sig[4];
 int riff_size;
 char typesig[4];
 char fmtsig[4];
 int fmtsize;
 short tag;
 short channels;
 int freq;
 int bytes_per_sec;
 short byte_per_sample;
 short bits_per_sample;
 char samplesig[4];
 int datalength;
} sample_riff= { "RIFF",0,"WAVE","fmt ",16,1,1,0,0,1,8,"data",0 };

void emit_level(int size)
{
    static int current_level=0xC0;
    int i;
    current_level=256-current_level;
    for (i=0;i<size;i++) fputc(current_level,out);
    file_size+=size;
}

void emit_silence()
{ /* silence pour les lecteurs mp3 ou autres qui "mangent" la fin du signal */
    static int current_level=0x80;
    int i, size;
    size=15000;
    current_level=256-current_level;
    for (i=0;i<size;i++) fputc(current_level,out);
    file_size+=size;
}

void emit_bit(int bit)
{
    switch (speed) {
      case 4800:
        emit_level(1);
        if (bit) emit_level(1);
        else emit_level(2);
        break;
      case 8000:
        if (bit) {
          emit_level(1);
          emit_level(2);
        } else {
          emit_level(2);
          emit_level(3);
        }
        break;
      case 11025:
        if (bit) {
          emit_level(2);
          emit_level(2);
        } else {
          emit_level(3);
          emit_level(4);
        }
        break;
    }
}

void emit_byte(int val)
{
  int i,parity=1;
  emit_bit(0);
  for (i=0; i<8; i++,val>>=1) {
    parity+=val&1;
    emit_bit(val&1);
  }
  emit_bit(parity&1);
  emit_bit(1);
  emit_bit(1);
  emit_bit(1);
  emit_bit(1);  /* 4 bits stop au lieu de 3.5 pour être sûr que les routines aient du temps */
}

void emit_gap()
{
  int i;
  /* un paquet de bits stop pour laisser le temps d'afficher la ligne de statut */
  for (i=0;i<100;i++) emit_bit(1);
}

init(int argc, char *argv[])
{
  if (argc<3) return 1;
  if (argv[1][0]=='-') {
    if (feed_parameters(argv[1])) return 1;
  }
  if (argv[2][0]=='-') {
    if (feed_parameters(argv[2])) return 1;
  }

  sample_riff.freq=sample_riff.bytes_per_sec=speed;
  in=fopen(argv[argc-2],"rb");
  if (in==NULL) {
    printf("Cannot open %s file\n\n",argv[1]);
    return 1;
  }
  out=fopen(argv[argc-1],"wb");
  if (out==NULL) {
    printf("Cannot create %s file\n\n",argv[2]);
    return 1;
  }
  return 0;
}


int feed_parameters(char *param)
{
  switch (param[1]) {
    case 'a':
    case 'A':
      silence = 1;
      break;
    case '8':
      speed=8000;
      break;
    case '1':
      if (atoi(param+1)==11)  {
        speed=11025;
      }
      else {
        printf("Bad value: %s\n",param+1);
        return 1;
      }
      break;
    default:
      printf("Bad parameter: %s\n", param);
      return 1;
  }
  return 0;
}


main(int argc,char *argv[])
{
  int i,size;
  unsigned char header[9], valin;

  if (init(argc,argv)) {
    printf("Usage: %s [ -8 | -11 ] [ -a ] <.TAP file> <.WAV file>\n",argv[0]);
    printf("Options: -8  produces a  8 kHz WAV file\n");
    printf("         -11 produces a 11 kHz WAV file  (default is 4800 Hz)\n");
    printf("         -a  adds a 1.5 seconds silence at the end of the WAV file, as\n");
    printf("             some mp3 players seem to 'eat' the end of the file\n");
    printf("(v1.1)\n");
    exit(1);
  }

  fwrite(&sample_riff,1,sizeof(sample_riff),out);

  while (!feof(in)) {
    if (fgetc(in)==0x16) {      /* s'assurer qu'on a bien un debut de programme */
      do {
        valin=fgetc(in);        /* read synchro (0x24 included) */
        if (feof(in)) break;
      } while (valin!=0x24);
      if (feof(in)) break;
      for (i=0;i<256;i++) emit_byte(0x16);
      emit_byte(0x24);

      for (i=0;i<9;i++) emit_byte(header[i]=fgetc(in));  /* header */

      do {
        i=fgetc(in); emit_byte(i);   /* name */
      } while ((i!=0)&&(!feof(in)));

      emit_gap();

      size=(header[4]*256+header[5])-(header[6]*256+header[7])+1;
      for (i=0;i<size;i++) emit_byte(fgetc(in));
    }
  }
  fclose(in);

  if (silence==1) {
    emit_silence();
  }
  sample_riff.datalength=file_size;
  sample_riff.riff_size=sample_riff.datalength+8+sample_riff.fmtsize+12;
  fseek(out,0,SEEK_SET);
  fwrite(&sample_riff,1,sizeof(sample_riff),out);

  fclose(out);
  printf("Tap2wav 1.1  (c) 08/2007 --- File converted.\n");
}

It compiles under Linux with some harmless warnings and works! Wink
iss
iss

Messages : 112
Date d'inscription : 30/10/2014

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Symoon Mer 18 Sep 2019 - 20:53

Merci ISS, je confirme que c'est l'endroit où trouver les dernières versions.
J'ai commencé il y a environ 15j une version 2019 de TAP2WAV qui devrait (si j'y arrive) gérer correctement les tableaux stockés par l'instruction STORE. Parce qu'actuellement, ça ne marche pas.

Et aussi, je vais forcer par défaut la présence d'un silence à la fin (j'en ai marre de répondre plusieurs fois par an à des questions suite à des chargements qui ne fonctionnent pas parce que les players ne jouent pas les fichiers jusqu'à la toute fin).
Symoon
Symoon

Messages : 779
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Mer 18 Sep 2019 - 21:41

@Iss: thanks a million!
I cannot understand why this usefull tool is no more in the repo, where it should belong?... But at least now it is here available for all, to share and improve! Laughing
I did some refactoring and it compile fine w/o any warnings!
And of course produce a nice wave file as expected!
I will try to submit the modification on sourceforge to get something up to date...
This part is now SOLVED



]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Dbug Jeu 19 Sep 2019 - 8:30

Le status des "tap tool" et "dsk tool" dans le OSDK est un peu bancal.

En gros a l'époque les binaires de Fabrice ne tournaient que sous DOS, ce qui les rendait impossible a lancer sous Windows 64 bit. Donc j'ai du me faire mes propres version, et au bout d'un moment ca m'a énervé d'avoir plusieurs outils faisant la même chose: Conceptuellement il y a zéro justification pour avoir Tap2Wav et Tap2CD. Les deux outils font la même chose, ont les mêmes routines de chargement, c'est juste l'encodage qui est différent, donc je voulais avoir une version unique avec juste un paramètre pour définir le format final.
Dbug
Dbug

Messages : 248
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Jeu 19 Sep 2019 - 10:03

@Dbug: je vois ce que tu veux dire sauf que Tap2CD génére un .wav à plus de 22000 bauds que l'Oric ne peut pas gérer en natif, si j'ai bien tout compris...
Dans mon cas même si le programme met 60sec. a se charger ça ne me dérange pas donc je souhaitai un .wav que les routines de l'oric peuvent gérer sans avoir à faire qq modifications que se soit.
Ensuite d'un point de vu conceptuel ce n'est pas génant le fait d'avoir un programme qui fait une chose mais le fait bien , c'est le principe du KISS qui fonctionne merveilleusement bien depuis plus de 40 ans. On écrit un script ou un wrapper (graphique ou non) qui gére alors chaque cas.
Qu'en penses tu?
En revanche il serait bon de mettre en place un repo GiT spécialement pour tous ces outils qui permettent soit de travailler avec Euphoric soit avec Oricutron, ainsi il y a un emplacement dédié aux outils et non un trucs à moitié lié aux émulateurs...
Qui est en charge de gérer les repo?
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Dbug Jeu 19 Sep 2019 - 11:12

Tap2CD génère un truc totalement chargeable sur Oric... juste pas avec un lecteur de K7: Il faut une source digitale propre (d'ou "CD", mais ca marche aussi avec la sortie audio d'un PC portable ou d'un téléphone mobile).

Pour la séparation en petits module, ca ne me pose pas de problèmes, sauf que les modules sont logiquement reliés.

En gros c'est comme si on me disait que PictConv devrait être coupé en plusieurs versions:
PictConvOricPngToTap
PictConvOricTgaToTap
PictConvAtariPngToPI1
PictConvAtariPngToSPU
etc...

Conceptuellement Tap2Wav et Tap2CD ca fait exactement la meme chose: Convertir un fichier TAP émulateur en un son chargeable sur Oric. La différence c'est juste l'équivalent du "taux de compression" dans un compresseur, ca ne justifie pas la séparation en plusieurs programmes.

Et le parallel de KISS (Keep It Simple Stupid) c'est DRY (Don't Repeat Yourself), et en l’occurrence la moitié des TapTools et DskTools a le meme code de gestion de chargement, parametres, etc... copié




Dbug
Dbug

Messages : 248
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par ]0[v] Jeu 19 Sep 2019 - 16:22

Oui je vois ce que tu veux dire, il m'avait semblé que la lecture en sortie de PC n'etait directe sur l'oric, donc "my bad!"
Si c'est 2 programmes sont similaires et qu'il s'agit juste d'une option a rajouter pour modifier le taux de compression il est évident qu'il n'est pas necessaire d'avoir 2 programmes distincts à ce moment là.
Donc effectivement je ne connais pas en détail le contenu de ces outils ni leur implementation propre, je vais jeter un oeil à Tap2CD du coup.
Merci pour ces precisions au sujet de ces outils.
]0[v]
]0[v]

Messages : 60
Date d'inscription : 25/07/2019

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Symoon Ven 20 Sep 2019 - 4:39

Dbug a écrit:
Conceptuellement Tap2Wav et Tap2CD ca fait exactement la meme chose: Convertir un fichier TAP émulateur en un son chargeable sur Oric. La différence c'est juste l'équivalent du "taux de compression" dans un compresseur, ca ne justifie pas la séparation en plusieurs programmes.

Pas tout à fait. Historiquement TAP2WAV sort des WAV chargeables sur véritable Oric (à 11kHz), mais aussi à destination d'Euphoric: le choix du WAV en sortie à 4 ou 8kHz étant pour les deux anciennes versions de "magnétophone virtuel" d'Euphoric (anciennes car Euphoric peut depuis quelque temps charger n'importe quel format WAV).

TAP2CD lui ne concernait que les vrais Atmos (pas Oric-1 !) et, à l'origine, les CD audio (sauf que si ma mémoire est bonne il s'est avéré que le CD introduisait des erreurs à la gravure/relecture et n'était pas vraiment fiable).

J'imagine que c'est ce qui explique historiquement les deux programmes: un "signal standard fidèle à l'original pour tout support, tout Oric ou émulateur", l'autre "signal spécifique pour vrais Atmos seulement et qui ne marchera pas sur K7".
Symoon
Symoon

Messages : 779
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

OSDK & gnu/Linux... Empty Re: OSDK & gnu/Linux...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum