Derniers sujets
» Listings de l'ORIC-1 Manual
OSDK & gnu/Linux... EmptyAujourd'hui à 14:56 par Ladywasky

» le retour du Commodore 64
OSDK & gnu/Linux... EmptyHier à 1:55 par jbperin

» Type in Master Mind
OSDK & gnu/Linux... EmptyJeu 5 Déc 2019 - 14:53 par Ladywasky

» Pictoric
OSDK & gnu/Linux... EmptyMer 4 Déc 2019 - 12:02 par Sheld67

» Nouveau site ceo.oric.org
OSDK & gnu/Linux... EmptyMar 3 Déc 2019 - 5:08 par didierv

» Bocco's adventures - nouveau jeu pour Oric
OSDK & gnu/Linux... EmptyMar 3 Déc 2019 - 0:08 par retroric

» Problème avec les boucles
OSDK & gnu/Linux... EmptyLun 2 Déc 2019 - 13:43 par TotoShampoin

» Nouvel ancien jeu: Oric Golf par K. Smith
OSDK & gnu/Linux... EmptyDim 1 Déc 2019 - 12:19 par Symoon

» Aux couleurs de l'Atmos
OSDK & gnu/Linux... EmptyDim 1 Déc 2019 - 11:52 par Dom50

» ORIC-1 sur LE BON COIN
OSDK & gnu/Linux... EmptyVen 29 Nov 2019 - 21:15 par didierv

» recherche racine carrée 32 bits (et arctangente 16 bits) [RESOLU !! ]
OSDK & gnu/Linux... EmptyVen 29 Nov 2019 - 9:43 par jbperin

» une atan2 pour vos lib math
OSDK & gnu/Linux... EmptyJeu 28 Nov 2019 - 21:19 par jbperin

» Materiels Oric pour membres du CEO
OSDK & gnu/Linux... EmptyMer 27 Nov 2019 - 14:38 par jbperin

» I had a dream .. glOric
OSDK & gnu/Linux... EmptyMer 27 Nov 2019 - 1:01 par retroric

» CEO-MAG 355
OSDK & gnu/Linux... EmptyMar 26 Nov 2019 - 23:19 par retroric

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 201 membres enregistrés
L'utilisateur enregistré le plus récent est David Coipel

Nos membres ont posté un total de 8298 messages dans 716 sujets
Portail ORIC




OSDK & gnu/Linux...

Poster un nouveau sujet   Répondre au sujet

Aller en bas

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

Message par ]0[v] le 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 le 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 : 231
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

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

Message par ]0[v] le 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] le 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] le 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 le 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 : 139
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] le 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] le 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 le 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 : 108
Date d'inscription : 30/10/2014

Revenir en haut Aller en bas

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

Message par Symoon le 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 : 758
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

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

Message par ]0[v] le 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 le 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 : 231
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

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

Message par ]0[v] le 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 le 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 : 231
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

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

Message par ]0[v] le 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 le 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 : 758
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

Poster un nouveau sujet   Répondre au sujet
 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum