22 de
Diciembre de
2007,
a las 00:43
Tags: programación, snack, tclEn anteriores entradas despotricaba contra Tcl/Tk, y una de mis “quejas” era que el aspecto de los “widgets” era horroroso, sobre todo en sistemas X-Window (Linux y otros UNIX).
Bien, parece que en esta nueva versión se ha añadido una extensión llamada Tile que permite el uso de “themes” en las aplicaciones Tcl/Tk. Los pantallazos que se muestran tienen buena pinta.
A lo mejor le doy una segunda oportunidad a Tcl/Tk como lenguaje para desarrollar programas “de ventanitas”. Veamos como queda uno de mis programillas (Pitch & Tunning Studio) con la nueva versión de Tcl/Tk.

Tk 8.4 en Mac OSX

Tk 8.5 en Mac OSX

Tk 8.4 en Linux

Tk 8.5 en Linux

Tk 8.5 en Windows XP
No he adjuntado un pantallazo de Tk 8.4 en Windows porque prácticamente no ha cambiado nada. La mejora en Linux es increíble: fuentes alisadas, los “radio buttons” redondos y muchos más detalles. También la versión para Mac ha mejorado bastante (observen el “spinbox” rotulado como “Note duration”).
Definitivamente, ya no puedo mantener que Tk es un “toolkit” feo
Por cierto, la distribución de Tcl/Tk más conocida, la de Active State, ya no incluye el paquete Snack por defecto (aunque se puede instalar).
¡Grrrr!
23 de
Julio de
2007,
a las 18:12
Tags: audio, programación, proyectos, snack, tclPitch & Tunning Studio is a small program that generates usual musical patterns (such scales, intervals and chords) in different tuning systems (just intonation, tempered and pythagorean scales).

This program runs in Linux, Windows and MacOSX.
Read more …
23 de
Julio de
2007,
a las 18:04
Tags: audio, programación, proyectos, snack, tclPitch & Tunning Studio es un pequeño programa que sirve para evaluar las diferencias que hay entre los distintos sistemas de afinación de la música occidental (pitagórico, temperado y natural, entre otros).

Está desarrollado con el lenguaje Tcl/Tk y la librería Snack [1]
Por cierto, creo que es el último programa que escribo con este lenguaje.
No llega a 400 líneas de código y he acabado mareado con la sintaxis extraña de Tcl. En mi opinión y para mi gusto, sirve para programas cortos y scripts sencillos, pero no me veo a mí mismo escribiendo (y manteniendo) algo que tenga más de 1000 líneas de código con Tcl.
Además, el aspecto de los “widgets” es horroroso 
A ver si encuentro algo parecido a Snack pero que no esté “atado” a un “toolkit” determinado. Y si lo puedo usar con Python, mejor que mejor.
Nota 1: realmente es impresionante lo que se puede llegar a hacer con Snack. En la distribución estándar vienen bastantes ejemplos (en Windows, en el directorio c:\tcl\demos\Snack y en Linux, bajo /usr/share/doc/libsnack2/examples). Mis preferidos son generator2.tcl y formant.tcl, un generador o sintetizador de ondas estéreo y un sintetizador de formantes:

Como decía más arriba: ¡qué pena que Snack esté tan ligado a Tk!
11 de
Mayo de
2007,
a las 11:47
Tags: audio, programación, snack, tclEn esto tiempos aciagos para los/as programadores/as, en los que cada dos días sale un lenguaje o herramienta nuevos, en los que para montar una sencilla web hay que lidiar con los omnipresentes patrones de diseño, montones de capas de abstracción y demás, se agradece la simplicidad y sencillez de los viejos tiempos.
Tcl significa “Tool Command Language” y Tk “ToolKit”. Es un lenguaje de “script”, con una sintaxis muy similar a la de cualquier “shell” (como Bash).
Hacía mucho que no hacía nada con Tcl/Tk, y el otro día recordé que existe todavía la estupenda librería Snack. Es una librería de tratamiento y generación de sonido en tiempo real.
Así que, provisto del tutorial de Snack y la documentación de Tcl/Tk pertinente, me hice un pequeño afinador (cutre: sólo da notas de referencia, no “lee” las notas del instrumento):

(Captura de pantalla en Windows)
En 65 líneas de código simple tenemos casi un programa completo:
Código (renombrar a tuner.tcl)
Lo que más atención me llama es que a cada “widget” se le puede asociar una variable (global) de tal forma que, al cambiar la variable, se actualiza el elemento convenientemente. Por ejemplo, el “message” y el “spinbox” tienen asociados dos variables, newfreq y octave, respectivamente.
Desde el procedimiento beep modificamos newfreq y el texto de la etiqueta cambia.
Ocultamiento de información y encapsulamiento: ninguno. ¿Acaso es necesario siempre?
Recursos
- Todavía hay en la red un tutorial en castellano (de lo poquito que he podido encontrar) de la Universidad de Oviedo. Data de 1998 (!) y está bastante bien. Lo bueno del mundillo Tcl/Tk es que las cosas no se quedan obsoletas tan pronto.
- Visual Tcl es un IDE para Tcl/Tk. Permite desarrollar las aplicaciones Tcl/Tk de forma “visual”: pinchando y dibujando los “widgets”. Funciona perfectamente y su última actualización fue en 2006.