Oct242014

C* Music Player

Tras una larga ausencia por causas más que justificadas (¡Ya soy Ingeniero, yupiii!) vuelvo con un artículo con pretensiones de review. Durante mi jornada laboral como programador, alcanzar cierto nivel de concentración resulta imprescindible. Para conseguir centrarme en mis tareas, suelo recurrir a la música.

Escuchar música es una de las actividades que solemos realizar  en el día a día. Hasta la fecha, mi reproductor favorito de música ha sido Audacious que, en mi opinión, es de lo mejorcito en reproductores de música GUI. Como últimamente he estado metido en la consola (me confieso un usuario empedernido de vim) y se me ocurrió rebuscar entre los diferentes proyectos de reproductores de música que había para terminal.

De entre todos los que vi me llamo la atención cmus o C* Music Player, un reproductor compatible con sistemas operativos Unik-like; es decir,  GNU/Linux, MAC OS , OpenWrt (Sí, ya puedes tener tu router timofónico con openwrt tuneado con este reproductor de audio), distintas variedades libres de BSD,…

C* Music Player

1.- Historia

Su origen se remonta al año 2005 de la mano de Timo Hirvonen. Este continuó su desarrollo hasta que decidió congelarlo en el año 2008. Por aquel entonces, terceras partes decidieron bifurcar el proyecto en lo que se denominó “cmus-unofficial”. Un año más tarde, los desarrolladores de “cmus-unofficial” solicitaron la adquisición del proyecto original a SourceForge, el cual les fue concedido tras el periodo reglamentario de 90 días sin respuesta por parte de Timo Hirvonen. En febrero de 2010, “cmus-unofficial” volvió a fusionarse con el proyecto original.

2.- Visión de conjunto

Screenshot from 2014-10-23 22:17:19

En este caso, cmus emplea una interfaz que está en la tierra de nadie entre el CLI y las GUI,  Ncurses, lo que en el mundillo se denomina GUI-like. La imagen previa es un ejemplo de la primera de siete pantallas o vistas con las que el usuario puede interactuar. El programa se controla principalmente con accesos de teclado personalizables aunque podemos encontrar una pequeña línea de ordenes en la parte inferior muy al estilo vim con la que podremos interactuar de forma más avanzada con el programa.

3.- Las 7 vistas mágicas

Como ya mencioné antes, el programa cuenta con 7 vistas que agrupan todas las funcionalidades del programa. Veamos en que consisten.

Vista (1) de Librería (Árbol artista/álbum)

Vista de Librería

Esta es la vista principal de cmus. A mano izquierda tenemos el listado de álbumes que hayamos agregado agrupados por artistas. El orden de los artistas es lexicográfico mientras que el orden de los álbumes es por fecha.

A mano derecha podemos ver una lista de las pistas que contiene cada álbum con los detalles típicamente relevantes como el número y título de la pista, el año de la canción y su duración . Si en el cuadro izquierdo seleccionásemos un artista, en el cuadro derecho aparecería el listado de pistas separadas por el álbum al que pertenece. Si por el contrario seleccionamos un álbum concreto de un artista, aparecerán únicamente las pistas de ese álbum, que es lo que se ve en la imagen de arriba.

Vista (2) de Librería Simple

Vista de Librería

Esta vista es una versión simplificada de la primera vista. En esta ocasión cada elemento tiene, de izquierda a derecha, el álbum de la pista, el título con su número,  el año y la duración. En definitiva, una forma sencilla de visualizar y controlar nuestras canciones.

Vista (3) de Lista de reproducción

Vista de Lista de reproducción

La lista de reproducción es como la vista 1 o la 2 pero nos permite agrupar canciones que pueden o no estar en el mismo álbum y que éstas se reproduzcan tal y como nosotros las ordenemos en la lista.

Por defecto, la lista de reproducción se guarda en la ruta que se muestra en la parte superior de la imagen. Si quisiéramos guardar la lista en una carpeta de nuestra elección emplearíamos el siguiente comando.

:save /ruta/a/la/carpetA/lista.pls

Vista (4) de Cola de reproducción

Vista de cola de reproducción

La cola representa la lista de canciones que van a reproducirse. En cierta medida se parece a la vista 3 en que las canciones en la cola se reproducen en el orden en el que hayan sido añadidas (Estructura FIFO), pero se diferencia de esta en que las canciones son eliminadas de la cola al reproducirse.

Vista (5) de navegador de archivos

Vista de Navegador

Esta vista es es el árbol de directorios de nuestro equipo. Para navegar por las carpetas hay que usar las flechas del teclado y pulsar Enter. Para reproducir una canción podemos pulsar Enter , podemos pulsar e para añadirla a la cola, pulsar y para añadirla a una playlist o pulsar a para añadirla a la librería.

Vista (6) de Filtros

Vista de Filtros

Parte de la chicha del programa radica en el buen uso que hagamos de esta vista. Los filtros, como indica su nombre, nos permite restringir las canciones que se listan en las primeras dos vistas. Por defecto, el programa viene con unos cuantos filtros.

Nosotros podemos definir filtros de nuestra cosecha empleando el comando fset de una forma parecida a la siguiente:

:fset house genre="House"

También podemos definir filtros empleando otros filtros previamente definidos de la siguiente manera:

:fset mystyles flac|house

Vista (7) de configuración

Vista de configuración

La última de las 7 vistas corresponde con la configuración del programa. Aquí podremos cambiar las accesos de teclados u otras opciones como el esquema de colores o la salida de audio. Para cambiar una opción pulsaremos Enter  y nos colocará en la línea de comandos el correspondiente comando set que nos permitirá modificar dicha opción. Un ejemplo con el plugin para la salida de audio sería el siguiente:

:set output_plugin=pulse

3.- Órdenes principales de la línea de comandos

En principio con los accesos de teclado y la vista del navegador de archivos es posible controlar el programa de forma básica sin necesidad de usar la línea de comandos. Pero como ya hemos visto, hay ocasiones en que es imperativo su uso. A continuación listaré ejemplos de uso de los comandos más utilizados para controlar cmus.

Añadir canciones

:add ruta/a/la/carpeta/o/pista

Crear filtros

:fset house genre="House"

Activar filtros

:factivate house

Desactivar todos los filtros

 :factivate 

Buscar canciones

/palabra_a_buscar

Al igual que con vim, usando la barra podremos buscar canciones que contengan las palabras clave de búsqueda.

Si la palabra estuviese en más de una canción, pulsando n, podremos encontrar las siguientes coincidencias de la clave de búsqueda.

Ir a un tiempo concreto de una canción

:seek hh:mm:ss

Podemos acceder a un tiempo concreto de una canción indicando la hora (canción laaaarga..), minutos y segundos. Algo como lo siguiente:

:seek 1:15:08

El programa tiene muchas opciones que no os “spoilearé” para que juguéis con el.

Saludos y comentad mucho 😀

P.D: Os dejo un par de enlaces que pueden ser de interés.

CheatSheet con los accesos básicos de CMUS por atkrad

Página web oficial de cmus

Video sobre instalación de cmus en Archlinux (inglés)

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

7 respuestas para “C* Music Player

Alejandro

Gracias a gente que la peta; como tú, podemos seguir disfrutando del mundo. Gracias


Hugo J. H.

De nada. Seguiré trabajando por un mundo mejor.

Hugo


José Miguel

Enhorabuena Hugo, mi sincera felicitación por esa ingeniería. 🙂


Hugo J. H.

Gracias José Miguel. Espero poder contribuir un poco más al blog ahora que me he librado del yugo universitario.


Liamngls

Interesante reproductor y muy buen artículo, felicidades por la ingeniería 🙂


ochobitshacenunbyte

Hola amigo,
Me ha gustado mucho el artículo y me ha parecido muy interesante. Soy un asiduo de la consola, así que perfecto : )
Ah! Enhorabuena por la super ingienería!


Hugo J. H.

Gracias a todos por los comentarios. En breve más cositas 😀

Saludos


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *