Fecha: 31-5-2004
-----------------

Autor:  Jaime Jose Gavin Sierra       Alias: JJ
Operador: EC1DLN
WEB: http://www.lanzadera.com/ensamblador
Asturias (Espaa)

  El PTT Sound v1.1 es una utilidad que nos permite convertir nuestro PC con
tarjeta de sonido en un micrfono para nuestra emisora, con posibilidad de
ROGER BEEP y efectos sonoros.

  Requerimientos hardware:
  -------------------------

    - CPU: 80386 o superior
    - RAM: 1 MB (con menos funciona)
    - Tarjeta de sonido: 8 o 16 bits, SB, GUS, etc..
    - Teclado o raton
    - Tarjeta de video: SVGA compatible con VESA (se aceptan modos raros)
    - S.O.: FreeDOS, WIN32
    - Micrfono para poder hablar por la emisora
    - Interface (RS-232 y SB) a emisora, es decir, conversor de la tarjeta
      de sonido y puerto serie a la entrada de micrfono de la emisora

  Chapuzas:
  ----------

    - Se puede usar una CPU inferior a un 80386, con la utilidad rts8086.exe,
      que combinada con un reproductor de sonido para tarjeta de sonido SB
      o incluso una COVOX SOUND, se podra activar pastilla, a la vez que
      se reproduce con el micrfono

    - Si no queremos hacer el conversor de RS232 a la entrada de micrfono de
      la emisora, se puede usar el micrfono de la emisora, controlado por
      mano, a la vez que se graba de ruido ambiente o fondo a la tarjeta de
      sonido (peor calidad), pero funciona. De esta forma, nos quitamos de
      hacer el conversor.


Opciones
---------

  Para lanzar el programa, debemos escribir:

    ptt    --> Bajo DOS
    winptt --> Bajo WIN32

  Si usamos algun explorador de archivos, hay que hacer click sobre el icono
con forma de programa bajo DOS o WINDOWS. En el acto, nos saldrn varias
opciones que debemos elegir antes de ejecutar:

  setup
  COM1, COM2, COM3, COM4, NULL

  Si escribimos:

    ptt setup
    winptt setup

  Nos permitir elegir las opciones de configuracin de ALLEGRO del PTT Sound
como es el caso de la tarjeta de sonido, teclado, ratn, etc..
  
  Si ponemos

    ptt COM1
    winptt COM1

  Nos permitir trabajar sobre el puerto COM1 al apretar pastilla

  Si ponemos:

    ptt NULL
    ptt NULL

  Es lo mismo que usar un VOX.



Manejo
-------

  Antes de cargar nada, debemos de tener activo la reproduccin del micrfono
en WINDOWS, y en algunos casos, la grabacin. De esta forma, todo lo que
digamos por el micro, saldr por la emisora, al apretar pastilla.

  Si estamos bajo puro DOS, necesitaremos algn programa que active esta
linea. Los drivers que vienen con la tarjeta, suelen venir con alguna
opcin.

  Debemos de elegir el volumen de reproduccin del micrfono, de salida del
control de volumen principal, y dems opciones, desde el propio WINDOWS o
DOS, como mejor se adapte la salida.

  Una vez cargado el programa, nos saldr un men con los sonidos y roger
beep cargados dinmica o estticamente. Podremos seleccionar cada archivo
con las teclas de cursor <- -> y de arriba y abajo. Para cambiar de el men
de sonidos al de Roger Beep, hay que pulsar la tecla TAB. En pantalla nos
aparecer en la parte del men en el que estemos. Si usamos el ratn y el
botn izquierdo, podremos seleccionar el sonido que queramos, ya sea de roger
beep o sonido.

  Con las teclas + y - podremos cambiar el volumen de reproduccin.

  Para Activar el PTT (pastilla de emisora), hay que pulsar la Barra
espaciadora. En el acto nos saldr una imagen de un micrfono. Para cerrar
pastilla, habr que volver a pulsar la barra espaciadora. Adems se nos
indicar (RTS ON y OFF) por pantalla.

  Para reproducir un sonido, independientemente de estar en el menu Roger Beep
o no, habr que pulsar la tecla ENTER o el botn derecho del ratn.

  Para activar la opcin de Roger Beep, al cerrar la pastilla, debemos de
pulsar la tecla R. Adems se indicar en pantalla. De esta forma, cada vez que
cerremos pastilla, nos saldr el sonido de Roger Beep.

  Si queremos aadir sonidos de forma esttica, es decir, que esten en los
archivos SONIDOS.DAT (para efectos) y BEEP.DAT (roger beep), necesitamos
recompilar el programa. Pero si queremos aadirlos de forma dinmica, slo
hay que editar los archivos SONIDOS.INI (efectos) y BEEP.INI (roger beep).
Cada lnea tendr el nombre del sonido a mostrar en pantalla y la ruta con
el nombre del archivo WAV a reproducir.



Aclaraciones
-------------

  Los sonidos han sido sampleados a 8 Khz, porque (8 Khz / 2 = 4 Khz),de esta
forma entran en el rango permitido de la voz de la emisora, y no habr
problemas de generacin de armnicos parasitarios en otros canales.

  Otra opcin, sera usar frecuencias de sampleo de 11 Khz (11025 Hz / 2 =
5512 Hz = 5 Khz), que tambin entran en el rango soportado por las emisoras.
No obstante, no entra en el rango de la voz, ya que este es de 3 Khz.
Para el caso de 22 Khz (22050 Hz / 2 = 11025 Hz = 11 Khz), ya nos pasamos
del rango permitido por telecomunicaciones.

  No obstante, la mayora de las emisoras poseen un filtro paso bajos, que
elimina estos armnicos, pero ms vale prevenir que curar. As que os
recomiendo que en los archivos WAV de sonidos, usis una frecuencia de 8 Khz,
resampleandolos con un editor como es el caso del GOLDWAVE (shareware).

  Recomiendo que no usis Roger Beep de gran duracin, ya que lo normal es que
sean de 1 o 2 segundos a lo sumo. Y en cuanto a la duracin de los sonidos, lo
mismo, ya que si estis reproduciendo 1 minuto de sonido, estaris usurpando
el canal de forma no grata.

  Recomiendo que en vez de un micrfono de sobremesa, usis uno de
recepcionista, ya que viene preparado para los cascos de recepcin de la
emisora, a la vez de que el micrfono est pegado a la boca, siendo fcil
hablar, teniendo las manos libres.

  Por tanto, espero que esta utilidad sea para el bien de la comunidad de
radioaficionados, ya sea en la CB, como en otras frecuencias.



Novedades v1.1
---------------

  La versin 1.0, al tratarse de un prototipo, tenia varias limitaciones,
permitiendo, eso si, ser portada a multiples plataformas, sin modificacin
del codigo.

  En esta versin se han realizado las siguientes modificaciones:

    - La versin WIN32, funciona perfectamente bajo Windows XP, al haber
      integrado el manejador de puerto serie (lnea RTS) en .obj, y haberlo
      empaquetado al binario final.

    - Soporte de SKINS variados, con posibilidad de crear nuevos

    - Soporte de Ratn, Teclado y Joystick.

    - Soporte de SAMPLES: MIDI, MOD, XM, S3M, US3M, WAV, MP3 y OGG

    - Interface ms vistoso que la versin 1.0

    - Interface con soporte de varios niveles de transparencia.

    - Uso de la libreria DZCOM para acceder al puerto serie bajo DOS.

    - Soporte de modo ventana y pantalla completa.

    - GUI para elegir configuraciones y SKIN.



Advertencias
-------------

  Bajo WINDOWS XP, la versin de DOS, no reproduce bien los archivos de
sonidos, debido a los temporizadores, as como que algn modo de video tampoco
se ve bien, teniendo que cambiar el driver VESA a modo no lineal. Por tanto,
hay que usar la versin de WIN32.


  Si los modos de video no funcionan, habr que editar el archivo ALLEGRO.CFG
y poner el driver grfico correspondiente.


  Si hay algn problema visual o de sonido, habr que ejecutar la opcin SETUP
(sonido, ratn y teclado), o editar a mano el archivo ALLEGRO.CFG (video).



Interface
----------

 El esquema para hacer el interface para la emisora, viene en la foto adjunta

   interfaz.jpg
   interfaz2.gif
   interfaztalki3.gif

 Slo es vlido para controlar el PTT.
 Para el sonido, debis de detectar cual es el conector de entrada de audio
de vuestra entrada de micrfono de la emisora, y meterle el audio de salida
de la tarjeta de sonido. Pero antes, hay que aplicarle un atenuador, de
relacion 100 KOhmios en serie con 1 KOhmio en paralelo (100 K en el audio y
1 K entre audio y masa). Esto es el mismo interface que para hacer radiopacket
o SSTV con tarjeta de Sonido.

  Si queris ms informacin, podis visitar la pgina web:

    http://www.lanzadera.com/ensamblador

  Y descargar el nmero 1 de la diskmag Exilium, donde se explica en un
artculo como hacer este interface para radiopacket.

  Como he usado una panamerizacin central, por el canal izquierdo y derecho
sale el mismo audio, es decir, es como si fuera MONO. Por tanto, nos vale
el esquema.

  He tomado la decisin de usar el Puerto Serie, ya que es ms estable ante
tensiones. Si queris usar el paralelo o el MIDI, hay que modificar el
cdigo fuente.

  Si teneis walki talki, con una sola entrada, para PTT y audio, debeis de
seguir el esquema del talki, y quizas debais de quitar el diodo, porque
puede consumir mucha tensin.



Licencia
---------

  Todo esto pertenece a la licencia GPL.
  Por tanto, podis modificar a vuestro antojo el cdigo fuente.




Por qu este programa?
------------------------

  Porque me tena que encargar de hacer un concurso en mi Radioclub
Alfa-Omega, y claro, quera animar un poco a la gente, as que que mejor, que
poner efectos sonoros si acertaban o no.

  Adems soy muy vago, y como tengo un micrfono de recepcionista, quera
poder apuntar los aciertos y fallos de la gente, a la vez que hablaba por la
emisora, sin falta de estar apretando pastilla, y con los papeles por un lado
u otro.

  Adems, como ya haba construido un interfaz para hacer packet con tarjeta
de sonido, que mejor que aprobechar esto, para el concurso. No obstante, para
el concurso, he usado muchos ms sonidos, que aqu, ya que no hay mucho
espacio.



Acerca del autor
-----------------

  JJ es un miembro del grupo scener SLIDERS:

    http://www.lanzadera.com/ensamblador

  Es un programador experimentado en:

    C, C++, Pascal, Pascal Object, Delphi, ensamblador, C--, BASIC, DARKBASIC,
    MOONROCK, DX-Creator, etc..
    Ensamblador de 8 bits, 16, 32 bits, y algo de 64 bits (emulador MERCED)

  Y dems lenguajes y pseudolenguajes, que carecen de interes:

    - Haskell, Prolog, HTML, DHTML, JAVASCRIPT

  Es conocedor de S.O. variados y amante de la multiplataforma:

    - FreeDOS, OS/2, WINDOWS, LINUX, BeOS, QNX, Menuet OS, RTOS, UNIX,
      SOLARIS, CP/M, AMIGA OS, AtheOS, TheOS, TOS, etc...

  Y colaborador con la demoscene:

    - Diskmag Exilium issue #1, issue #2
       http://www.lanzadera.com/ensamblador
       http://www.pouet.net
    - CPC, C64, GB, GBA, PS, AMIGA, ATARI, Spectrum, Z80, PC scene.
    - Miembro de BeProgramadores:
       http://www.macprogramadores.org/beos

  Y por supuesto:

    - Vocal del Radioclub ALFA-OMEGA de Mieres del Camino (Asturias) (Espaa)
       http://www.lanzadera.com/alfaomega
    - radioaficionado de CB (27 mhz) desde los 12 aos
    - Pruebas en PMR
    - Poseedor de licencia de radiooperador de clase C y B
    - Amante del radiopacket, SSTV, AMTOR, PACTOR, HELLSCRIBE, PSK31, RTTY,
      MORSE, y dems modos digitales via radio
    - Actualmente se encuentra desarrollando un protocolo de radiopacket 10
      veces ms rpido que el AX.25 y 10 veces ms barato, incompatible al
      100% en la capa fsica y lgica del AX.25. En breve, tendris noticias
      de ello, en la diskmag EXILIUM.



Estuctura de directorios:
--------------------------


 GNU.TXT            --> licencia GNU
 interfaz.jpg       --> foto del interfaz a construir
 interfaz2.gif      --> lo mismo, pero mas detallado
 interfazTalki3.gif --> lo mismo, pero para talki. Igual hay que quitar diodo.
 coder.txt     --> aclaraciones para programar
 leeme.txt     --> Este archivo
 /BIN
   /SKIN        --> Donde se encuentran los diferentes SKINS grficos
   /EXTRAS      --> Diferentes programas de control de PTT manuales
   alleg41.dll  --> libreria ALLEGRO para WIN32
   allegro.cfg  --> fichero de configuracion de ALLEGRO multiplataforma
   beep.dat     --> sonidos de roger beep estaticos
   beep.ini     --> sonidos de roger beep que pueden modificarse
   sonidos.dat  --> sonidos estaticos
   sonidos.ini  --> sonidos que pueden modificarse
   setup.dat    --> datos necesarios para la opcion setup del PTT Sound
   ptt.exe      --> PTT Sound bajo DOS
   winptt.exe   --> PTT Sound bajo WIN32
   rts.exe      --> activa RTS del RS-232 bajo DOS en 32 bits en DPMI
   winrts.exe   --> activa RTS del RS-232 bajo WIN32 en 32 bits
   rts8086.exe  --> activa RTS del RS-232 bajo DOS en un 8088, 8086
   cwsdpmi.exe  --> activa modo protegido DPMI
   /SONIDOS     --> Sonidos de archivo
    /BEEP
    /MIDI
    /MOD
    /SAMPLES
     /MP3
     /OGG
     /WAV
 /SRC  --> Codigo fuente
   /setup      --> Contiene lo necesario para compilar con opcion setup
   rts.c       --> Para la linea RTS del RS-232
   optimiza.c  --> Compilar con optimizacion de video para FreeDOS
   micro.c     --> Para usar imagen de portada y micro
   micro.h     --> Lo mismo
   micro.dat   --> De donde se saca la imagen de portada y micro
   ptt.c       --> El programa PTT Sound
   sonidos.h   --> Cabecera con sonidos
   beep.h      --> Cabecera con sonidos de roger beep
   sonidos.txt --> Nombre de sonidos
   beep.txt    --> Nombre de los Roger Beep
