¿Algún programador por aquí?

7 messaggi, 1 pagine:  1 ↖ Torna alla lista degli argomenti

Punteggio: +0

1. Exink,

Hola:
No sé si alguien pudiera ayudarme con lo siguiente:
Quisiera crear un reproductor de Morse (ojo, reproductor, no conversor). Para esto podríamos usar los puntos y rayas o simplemente el código en binario. Sería mejor y más fácil para ustedes si fuera así.
Dado que el funcionamiento muy básico del Morse lo explicamos como una serie de señales cortas y largas así como de separaciones entre las mismas que puede ser emitida mediante una llave recta o una paleta, solamente hay dos estados. El 1 para indicar que el oscilador se enciende y el 0 para indicar que se apaga. Entonces la idea sería crear un programa donde lo que escribas en binario, especificando una duración en milisegundos o en palabras por minuto basado en estos estados pueda ser reproducido por una onda sinusoidal, cuadrada, triangular o diente de sierra; ¿o por qué no poder escoger entre las cuatro?
Digamos que cada 1 o cada 0 ejecuta la acción determinada. El 0 la ausencia de sonido y el 1 su presencia.
Así, la mítica señal de sos, escrita como ...---... (tres puntos, tres guiónes y otros tres puntos) escrita con este sistema pasaría a ser así:
101010001110111011100010101
Básicamente indicamos al oscilador que se encienda y se apague determinada cantidad de veces. En realidad esto es de esta forma:
En el Morse ocupamos dos estados (on y off) y 3 tipos de pausas.
La unidad más pequeña es el dit o punto, se indica con un 1
Para escribir tres dits (o lo que es lo mismo una raya) ocupamos tres unos, puesto que esto no es más que multiplicar un dit por 3.
El espacio entre estos elementos en un solo caracter (puesto que cada letra en Morse ocupa uno o más de estos elementos) se representa con un 0 cuya duración es la misma que la de un dit.
El espacio entre letra y letra equivale a un guión (000)
Y el espacio entre palabras se representa con siete dits, igualmente con siete ceros.
Para entender mejor esta representación, recordemos que la letra "S" en Morse es representada por 3 señales cortas, obviamente acompañadas por su espacio entre señal y señal. Por eso escribimos 10101. O sea, on off, on off, on off.
Y la "O" se escribe con tres señales largas, es decir, 11101110111. On on on off, on on on off, on on on.
El espacio se escribe con tres ceros (000) ya que esta es la separación entre caracter y caracter. Así que por ello el resultado es 101010001110111011100010101
Si tienen duda sobre esto favor de hacérmelo saber por aquí o en privado.
Sin embargo, la ventaja es que el programador no tiene que saber nada en absoluto sobre el código Morse puesto que el usuario es quien tiene total control sobre lo que se escribe.
Estoy pensando también en la posibilidad de guardar el archivo y añadir un fundido de entrada y salida a los clicks, pero eso puede ser a futuro.

Para el diseño, digamos que podría ser algo así:
CWTransmiter diálogo.
Escribe el código Morse en binario cuadro de edición.
Aquí iría la cadena numérica con los caracteres.
Reproducir botón.
Es más que obvio lo que hace este botón. :D reproduce la cadena de caracteres introducida anteriormente.
Duración de unidad mínima cuadro de edición.
Aquí escribimos el tiempo que dura cada estado (1 ó 0) e milisegundos. Preferiblemente que esta variable pueda ser de punto flotante.
Forma de onda cuadro combinado sinusoidal
Este sería el tipo de onda usado para la salida en Morse. Sería bueno que se pudieran elegir los cuatro tipos disponibles (sine, square, triangle y sawtooth) aunque con el primero es suficiente.
Frecuencia cuadro de edición.
Esto corresponde a la frecuencia en hz para la señal.
(Opcional) duración de fundido de entrada y salida.
Se aplica un fundido al inicio y fin de señal audible. Es decir, es como si al presionar el manipulador se generara un fundido de entrada y al soltarlo ocurre lo propio a la inversa. En milisegundos muy cortos, claro.
(Opcional) Guardar en "wav" botón.
Guarda la señal como un archivo wav.
En realidad eso es todo lo que esta cosa podría hacer. Como digo no hay necesidad de aprender el alfabeto puesto que el operador es quien tiene el control casi total sobre lo que se escribe. Digo casi porque lo que faltaría serían los espacios en fanswort, aunque creo que eso no es tan necesario por ahora.
Si van a cobrarme, por favor no me pidan cantidades monstrousas. Puedo pagar, pero no hablo de miles xD.
¡Gracias y un saludo!

Punteggio: +0

2. HijoDelTrueno,

Creo que en python se hace en dos patadas y multiplataforma.

Punteggio: +0

3. Exink,

No entiendo aquéllo de "dos patadas"; asumo que apenas te costaría trabajo hacerse, ¿cierto?
Si gustas puedes contactarme vía mensaje permanente en caso de que quieras ayudar.
¡Gracias!

Punteggio: +0

4. BOFH ,

¿No sería más sencillo convertir el texto? Pregunto.

Punteggio: +0

5. Exink,

Sí, pero es más costoso (al parecer) y creo además que de esta forma se pueden personalizar los espacios e incluso se pueden usar prosignos (como sk, bt, as, etc). Pero si puedes convertir el texto, adelante...

Punteggio: +0

6. BOFH ,

Creo que no me dejo nada. Ahora solo habría que tomarse la paciencia de convertirlo a algún programa. si tuviera tiempo en un par de tardes estaba hecho.

a = ._
b = _...
c = _._.
d = _..
e = .
f = .._.
g = __.
h = ....
i = ..
j = .____
k = _._
l = ._..
m = __
n = _.
o = ___
p = .__.
q = __._
r = ._.
s = ...
t = _
u = .._
v = ..._
w = .__
x = _.._
y = _.__
z = __..
\u0105 = ._._
\u0107 = _._..
\u0119 = .._..
\u00E9 = .._..
ch = ____
\u0142 = ._.._
\u0144 = __.__
\u00F3 = ___.
\u015B = ..._...
\u017A = __.._
\u017C = __.._.
0 = _____
1 = .____
2 = ..___
3 = ...__
4 = ...._
5 = .....
6 = _....
7 = __...
8 = ___..
9 = ____.
. = ._._._
, = __..__
' = .____.
" = ._.._.
_ = ..__._
: = ___...
; = _._._.
? = ..__..
! = _._.__

  • = _...._
  • = ._._.
  • / = _.._.
    ( = _.__.
    ) = _.__._
    = = _..._
    @ = .__._.

Punteggio: +0

7. Exink,

Entonces si así se te hace más fácil podría ser, con tal de poder añadir los prosignos; aunque más que nada la posibilidad de manejar este sistema por una base es diferente de lo que conocemos, por eso sería interesante que se pudiera hacer así o escribiendo los signos directamente. He visto que los encierran en brakets (corchetes) o eso va después de un #. Por ejemplo, #bt o [sk]. Ahí como veas.

Punteggio: +0

7 messaggi, 1 pagine:  1 ↖ Torna alla lista degli argomenti

Rispondere all'argomento

Devi aver loggato per postare.

Password dimenticata ? Crea un account