{"id":21181126,"url":"https://github.com/wachin/py_chord_autoscroll","last_synced_at":"2025-03-14T19:20:37.694Z","repository":{"id":251455449,"uuid":"837474688","full_name":"wachin/py_chord_autoscroll","owner":"wachin","description":"A chord autoscroll and transposer tool for guitarists. Built with Python and PyQt6, this app allows musicians to load, edit, and transpose song chord sheets, with auto-scroll functionality for hands-free performance. Ideal for live performances, rehearsals, and music practice.","archived":false,"fork":false,"pushed_at":"2025-01-14T16:36:28.000Z","size":641,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T12:11:27.993Z","etag":null,"topics":["autoscroll","autoscrolling","chord-progression","chords","gui","guitar","guitar-chords","music","musicians","pyqt6","pyqt6-app","python","python-3","transposer"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wachin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-03T05:01:50.000Z","updated_at":"2025-01-14T16:36:32.000Z","dependencies_parsed_at":"2024-12-25T17:20:49.924Z","dependency_job_id":"ad14b39f-8d08-40cd-b11e-8d61d22dbd06","html_url":"https://github.com/wachin/py_chord_autoscroll","commit_stats":null,"previous_names":["wachin/pychordautoscroll","wachin/py_chord_autoscroll"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wachin%2Fpy_chord_autoscroll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wachin%2Fpy_chord_autoscroll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wachin%2Fpy_chord_autoscroll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wachin%2Fpy_chord_autoscroll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wachin","download_url":"https://codeload.github.com/wachin/py_chord_autoscroll/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243632555,"owners_count":20322416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoscroll","autoscrolling","chord-progression","chords","gui","guitar","guitar-chords","music","musicians","pyqt6","pyqt6-app","python","python-3","transposer"],"created_at":"2024-11-20T17:47:38.627Z","updated_at":"2025-03-14T19:20:37.674Z","avatar_url":"https://github.com/wachin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manual de Instalación y Uso del Programa para Guitarristas en Linux Debian 12, MX Linux 23, antiX 23\n\nEste programa es ideal para guitarristas que necesitan gestionar archivos de canciones en formato de texto .txt y ajustar los acordes rápidamente durante ensayos. Con características de auto-scroll y transposición, tendrás todas las herramientas necesarias a tu disposición para poder adaptar una canción para tu voz.\n\n## Probado en los siguientes Linux:\n- Linux Debian 12 de 32 bit\n- MX Linux 23 de 32 y 64 bit\n\n\n---\n\n# Instrucciones de Instalación\n\n## 1. Instalación de dependencias\nAntes de ejecutar el programa, necesitas asegurarte de que ciertos paquetes estén instalados en tu sistema. Ejecuta el siguiente comando en la terminal para instalar las dependencias necesarias:\n\n**Para Debian 12, MX Linux 23, antiX 23)**\n\n```bash\nsudo apt-get install python3 python3-pyqt6 python3-mpmath \\\n    python3-simplejson python3-all-dev qt6-translations-l10n \\\n    fonts-noto-mono python3-chardet\n```\n\n**Nota:** Al final dejo explicaciones de para qué sirven algunos de estos paquetes.\n\n---\n\n## 2. Ejecutar el programa\nUna vez instaladas las dependencias, puedes ejecutar el programa desde la terminal. Navega a la carpeta donde se encuentra el archivo `chord_autoscroll.py` y usa el siguiente comando:\n\nPara Debian 12:\n\n```bash\npython3 chord_autoscroll.py\n```\n\nasí como en la siguiente captura de pantalla:\n\n![](src/vx_images/01-lanzando-chord_autoscroll.py.webp)\n\no si tu Distribución Linux cuenta con un lanzador de programas escritos en python como en MX Linux 23 con clic derecho en Thunar, o si deseas hacerlo en Dolphin instala mi [lanzador](https://facilitarelsoftwarelibre.blogspot.com/2024/08/anadir-dolphin-una-opcion-para-ejecutar-scrpts-en-python.html):\n\n\n![](src/vx_images/05-lanzador-python-para-dolphin.png)\n\n---\n\n## Modo de Uso\n\n### 1. Abrir canciones\nExisten dos maneras de cargar tus archivos de texto con acordes en el programa:\n- **Arrastrar y soltar archivos**: Simplemente arrastra un archivo de texto (con extensión `.txt`) hacia la ventana del programa.\n- **Abrir desde el menú**: Haz clic en \"Archivo \u003e Abrir\" en la barra de menú para seleccionar y cargar tus archivos.\n\n**Ejemplos de archivos incluidos:**\n\n🗀 Ejemplos/A quien iré - Luis Enrrique Espinosa (C).txt  \n🗀 Ejemplos/A quien iré - Luis Enrrique Espinosa (D).txt  \n🗀 Ejemplos/Canta al Señor - Vertical (C#).txt  \n🗀 Ejemplos/De tal manera - Abel Zabala (A#).txt  \n🗀 Ejemplos/El Espíritu de Dios - Hector Pinilla (E).txt  \n🗀 Ejemplos/La niña de tus ojos - Daniel Calveti (A).txt  \n🗀 Ejemplos/La niña de tus ojos - Daniel Calveti (C).txt  \n🗀 Ejemplos/No hay lugar mas alto - Miel San Marcos (A).txt  \n🗀 Ejemplos/Renuévame - Marcos Witt (C).txt  \n🗀 Ejemplos/Renuévame - Marcos Witt (D).txt  \n🗀 Ejemplos/Sumergeme - Jesus A.R (A#).txt   \n\n![](src/vx_images/04--Portada-la-niña-de-tus-ojos.png)\n\n### 2. Transponer acordes\nEl programa cuenta con un botón **\"Transponer\"**, ubicado en la esquina inferior derecha. Al hacer clic, se abrirá un menú donde puedes ajustar los semitonos de tus acordes:\n- **Subir semitonos**: Desplázate hacia arriba para aumentar el tono.\n- **Bajar semitonos**: Desplázate hacia abajo para reducir el tono.\n\nEsto es especialmente útil cuando necesitas adaptar una canción a tu voz o a la afinación de tu guitarra.\n\n### 3. Control de desplazamiento\nEl programa te permite desplazarte automáticamente por la letra y acordes de la canción, facilitando la lectura durante la interpretación.\n\n- **Iniciar/Pausar desplazamiento**: Usa los botones **\"Iniciar\"** y **\"Pausar\"** para controlar el desplazamiento automático.\n- **Ajustar velocidad**: Usa el deslizador de velocidad para ajustar la rapidez del desplazamiento según tu necesidad.\n\n### 4. Cambiar fuente\nEl programa ofrece la posibilidad de personalizar la fuente de los acordes. En el menú \"Opciones \u003e Cambiar fuente\", puedes seleccionar la fuente de tu preferencia. Por defecto, se utiliza una fuente monoespaciada **Noto Mono**, perfecta para asegurar la correcta alineación de los acordes.\n\n### 5. Cambiar y guardar la velocidad de desplazamiento\nEl programa ofrece la posibilidad de cambiar la velociad. En el menú \"Opciones \u003e Cambiar velocidad máxima\", puedes seleccionar puedes aumentar el número que allí aparece lo que hará que la velocidad de desplazamiento sea más baja, esto funciona bien en Sistemas Operativos Debian 12 y basados en el como MX Linux 23, antiX 23, etc\n\n---\n\n### 6. Opciones de guardado de archivos\n\nEl programa incluye tres opciones para guardar archivos en el menú \"Archivo\":\n\n**1. Guardar**\n\nEsta opción guarda el archivo utilizando la misma codificación y terminador de línea que tenía originalmente el archivo abierto o editado. Es útil para conservar la compatibilidad con otros programas o sistemas.\n\n**2. Guardar como...**\n\nPermite guardar el archivo en una nueva ubicación, pero conserva la codificación y el terminador de línea originales del archivo abierto o editado. No muestra opciones para cambiar la codificación.\n\n**3. Guardar Codificación como...**\n\nEsta opción te permite guardar el archivo seleccionando una codificación y terminador de línea diferentes. Al elegir esta opción, aparecerá un cuadro de diálogo donde puedes seleccionar entre las siguientes codificaciones:\n\n* **UTF-8**\n \n* **UTF-16 LE**\n \n* **UTF-16 BE**\n \n* **UTF-8 con BOM**\n \n* **ANSI**\n\n* **ISO-8859-1**\n\nY también puedes seleccionar el tipo de terminador de línea:\n\n* **Windows (CRLF)**\n\n* **Unix (LF)**\n\n* **Mac (CR)**\n\nEsto es especialmente útil si necesitas que el archivo sea compatible con diferentes sistemas operativos o programas que requieren una codificación específica.\n\n\n\n### 7. He hecho un Cancionero con muchas alabanzas que usamos en la Iglesia\n\n En la siguiente dirección está mi cancionero con letras y acordes de guitarra:\n\n[https://github.com/wachin/Cancionero](https://github.com/wachin/Cancionero)\n\nlo puedes descargar así:\n\n![](src/vx_images/03-descarga-mi-cancionero-de-canciones-con-acordes-de-guitarra.webp)\n\nLas canciones están en la carpeta:  \n\n\n🗀 Acordes de Guitarra para celular (63x110mm)\n\n\ny debes instalar la siguiente fuente tipográfica que la dejé allí mismo para varias canciones que uso:\n\n\n🗀 Cancionero/Fonts/iosevka-wps-linux/  \n\n\nallí están las instrucciones de instalación. Aunque ultimamente he llegado a la conclusión que para las nuevas usaré la fuente de Microsoft llama Consolas pues pensando en los usuarios de Windows que usan Microsoft Office Word, y además para usarlas online en [https://www.office.com/](https://www.office.com/)\n\nPara editar los archivos .docx puedes usar LibreOffice, WPS Office, Microsoft Windows (si lo tenga instalado en Wine o PlayOnLinux)\n\n---\n\n#### Temas sobre instalación de fuentes tipográficas\nLe dejo los siguientes temas importantes que he escrito sobre las fuentes tipográficas en mi Blog:\n\n**Instalar fuentes tipográficas de Windows en Linux(Ubuntu, Debian, Fedora, etc) para compatibilidad de archivos de Midrosoft Office en LibreOffice, WPS Office**  \n[https://facilitarelsoftwarelibre.blogspot.com/2018/11/instalar-fuentes-de-windows-en.html](https://facilitarelsoftwarelibre.blogspot.com/2018/11/instalar-fuentes-de-windows-en.html)\n\n\n**Cómo instalar fuentes tipográficas descargadas desde Internet en Linux + Análisis de las fuentes de los repositorios de Debian, Ubuntu: Ibm, Noto, Liberation, Dejavu, Bitstream Vera , Freefont**  \n[https://facilitarelsoftwarelibre.blogspot.com/2021/01/como-instalar-fuentes-tipograficas-en-linux.html](https://facilitarelsoftwarelibre.blogspot.com/2021/01/como-instalar-fuentes-tipograficas-en-linux.html)\n\n**Fuentes monoespaciadas (mono fonts) en WPS Office no están alineadas**  \n[https://facilitarelsoftwarelibre.blogspot.com/2022/05/problema-con-las-fuentes-monoespaciadas.html](https://facilitarelsoftwarelibre.blogspot.com/2022/05/problema-con-las-fuentes-monoespaciadas.html)\n\n---\n\n## Atajos Asignados  \nLos siguientes son los atajos de teclado que le he puesto:\n\n|         Función          |          Atajo           |\n| ------------------------ | ------------------------ |\n| Nuevo archivo            | `Ctrl+N`                 |\n| Abrir archivo            | `Ctrl+O`                 |\n| Guardar archivo          | `Ctrl+S`                 |\n| Guardar como             | `Ctrl+Shift+S`           |\n| Salir                    | `Ctrl+Q`                 |\n| Seleccionar todo         | `Ctrl+A`                 |\n| Cambiar fuente           | `Ctrl+F`                 |\n| Cambiar velocidad máxima | `Ctrl+Shift+V`           |\n| Acerca de                | `Ctrl+H`                 |\n| Deshacer\t               | `Ctrl+Z`                 |\n| Rehacer\t               | `Ctrl+Shift+Z`           |\n| Iniciar Scroll\t       | `Ctrl+Barra espaciadora` |\n| Pausar Scroll\t           | `Ctrl+Barra espaciadora` |\n\n---\n\n## Notas sobre las dependencias:\nExplicación de para qué sirve cada una de las dependencias instaladas 😊:\n\n---\n\n### 1. `python3`\n   - **Descripción:** Instala el intérprete de Python 3.\n   - **Función:** Es la base para ejecutar programas escritos en Python.\n\n---\n\n### 2. `python3-pyqt6`\n   - **Descripción:** Es un conjunto de enlaces de Python para Qt 6, una biblioteca popular para crear interfaces gráficas.\n   - **Función:** Proporciona los componentes gráficos (ventanas, botones, menús, etc.) que se utilizan en el programa.\n   - **Ejemplo:** Permite crear ventanas principales, pestañas, etiquetas, y controles como el botón de \"Iniciar\" o la barra de desplazamiento.\n\n---\n\n### 3. `python3-mpmath`\n   - **Descripción:** Biblioteca para cálculos matemáticos con precisión arbitraria.\n---\n\n### 4. `python3-simplejson`\n   - **Descripción:** Biblioteca para trabajar con datos en formato JSON (JavaScript Object Notation).\n   - **Función:** Facilita la lectura y escritura de archivos de configuración o datos estructurados en JSON. Sirve para guardar configuraciones como la fuente, velocidad de desplazamiento, o preferencias del usuario.\n\n---\n\n### 5. `python3-all-dev`\n   - **Descripción:** Incluye archivos de desarrollo para Python 3, como cabeceras y herramientas necesarias para compilar extensiones en C/C++.\n   - **Función:** Es útil si necesitas compilar bibliotecas adicionales o trabajar en el desarrollo de módulos personalizados para Python.\n\n---\n\n### 6. `fonts-noto-mono`\n   - **Descripción:** Es un conjunto de fuentes monoespaciadas de alta calidad de la familia Noto.\n   - **Función:** Proporciona una fuente monoespaciada (usada comúnmente en editores de texto y código) para mostrar contenido de manera clara y legible. Es la fuente predeterminada para mostrar letras y acordes en el editor de texto.\n\n---\n\n### 7. `python3-chardet`\n   - **Descripción:** Biblioteca para detectar la codificación de archivos de texto.\n   - **Función:** Permite que el programa identifique automáticamente la codificación de un archivo al abrirlo, asegurando que pueda manejar archivos en formatos como UTF-8, ISO-8859-1, o Windows-1252, y otros.\n\n### 8. `qt6-translations-l10n`\nEl paquete `qt6-translations-l10n` en Debian 12 proporciona archivos de traducción para la biblioteca Qt6, lo que significa que añade soporte para múltiples idiomas en las aplicaciones desarrolladas con Qt6, incluyendo el español, entre otros idiomas.\n\nQt es un framework ampliamente utilizado para crear interfaces gráficas de usuario (GUI) y aplicaciones multiplataforma. Los cuadros de diálogo como \"Abrir\", \"Guardar como\", y otros mensajes de sistema que ves en el editor en Python se generan mediante la interfaz de Qt, y esos mensajes pueden estar traducidos dependiendo de la configuración de idioma del sistema.\n\n**Función del paquete `qt6-translations-l10n`:**\n- **Traducción de la interfaz**: Cuando instalas el paquete `qt6-translations-l10n`, estás proporcionando las traducciones necesarias para que los elementos de la interfaz de Qt, como los diálogos de archivo, botones, menús, etc., aparezcan en el idioma configurado en tu sistema (en este caso, español).\n\nLa parte del código agregado para que funcione esto es:\n\n```\nimport sys\nimport os\nimport math\n\n# Resto del código\n\nfrom PyQt6.QtCore import Qt, QTimer, QUrl, QTranslator, QLocale, QLibraryInfo\n\n    # Resto del código\n\n    def __init__(self):\n        super().__init__()\n        self.translator = QTranslator()\n\n        translations_path = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath)\n        print(f\"Ruta de traducciones: {translations_path}\")  # Depuración\n\n        # Cargar traducción al español\n        if self.translator.load(\"qtbase_es\", translations_path):\n            QApplication.installTranslator(self.translator)\n            print(\"Traducción al español cargada correctamente.\")\n        else:\n            print(\"No se pudo cargar la traducción al español.\")\n            \n    # Resto del código\n```\n\n---\n\nQue Dios les bendiga\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwachin%2Fpy_chord_autoscroll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwachin%2Fpy_chord_autoscroll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwachin%2Fpy_chord_autoscroll/lists"}