Afinador de guitarra 1.0 (PyQt y Python)

Hacía tiempo que tenía ganas de programar un afinador de guitarra y en estos días me he sacado las ganas :). Siempre me estoy fijando en alguna página web los tonos para ir afinando las cuerdas, pero hoy ya tengo mi propia app echa con Python y PyQt4.

Afinador de guitarra
Afinador de guitarra con Python y PyQt4

El código no es nada del otro mundo, es un poco de lo que he venido compartiendo sobre aplicaciones gráficas en python y algunas funciones con sonidos, lo comparto más abajo. También les comparto un vídeo en youtube para que vean como funciona.
El sonido lo he manejo con la librería pygame (los archivos de audio son con formato mp3).
En esta primera versión solo se podrá interactuar con los sonidos de las notas. En futuras versiones intentaré agregarle más funcionalidad.
Para aquellas personas que les guste tocar la guitarra (como a mi) y quieran probar el código, les dejo las descarga AQUI (Incluye: Tonos, afinador.ui y afinador.py)
El afinador de guitarra fue probado en un sistema Linux (Ubuntu), y para su correcto funcionamiento necesita tener instaladas las siguientes librerias:
- Pygame
- Pyqt4

Demo del afinador

Una foto de mis chiches 🙂

Afinador de guitarra en python
Mis instrumentos

Codigo del afinador de guitarra 

22/10/2016 --> Actualizo código y enlace de descarga



#!/usr/bin/python
# -*- coding: utf-8 -*-

# Autor: Diego Caraballo
# Afinador de Guitarra con PyQt4
# https://www.pythondiario.com/2014/12/afinador-de-guitarra-10-pyqt-y-python.html
 
import sys
import pygame
import time
from PyQt4 import QtCore, QtGui, uic
from PyQt4.QtGui import QSound

# Cargar nuestro archivo .ui
form_class = uic.loadUiType("afinador.ui")[0]

class MyWindowClass(QtGui.QMainWindow, form_class):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setupUi(self)
        self.btn_MI.clicked.connect(self.btn_MI_clicked)
        self.btn_LA.clicked.connect(self.btn_LA_clicked)
        self.btn_RE.clicked.connect(self.btn_RE_clicked)
        self.btn_SOL.clicked.connect(self.btn_SOL_clicked)
        self.btn_SI.clicked.connect(self.btn_SI_clicked)
        self.btn_mi.clicked.connect(self.btn_mi_clicked)
        self.btn_detener.clicked.connect(self.btn_Detener_clicked)
        pygame.mixer.init()

        
    def ruta():
  ruta = os.getcwd()
  return ruta
        
    def btn_MI_clicked(self):
        pygame.mixer.music.stop()
        
        pygame.mixer.init()
        pygame.mixer.music.load("E.mp3")
        pygame.mixer.music.play(-1)

    def btn_LA_clicked(self):
        pygame.mixer.music.stop()

        pygame.mixer.init()
        pygame.mixer.music.load("A.mp3")
        pygame.mixer.music.play(-1)

    def btn_RE_clicked(self):
        pygame.mixer.music.stop()

        pygame.mixer.init()
        pygame.mixer.music.load("D.mp3")
        pygame.mixer.music.play(-1)

    def btn_SOL_clicked(self):
        pygame.mixer.music.stop()

        pygame.mixer.init()
        pygame.mixer.music.load("G.mp3")
        pygame.mixer.music.play(-1)

    def btn_SI_clicked(self):
        
        pygame.mixer.music.stop()

        pygame.mixer.init()
        pygame.mixer.music.load("B.mp3")
        pygame.mixer.music.play(-1)

    def btn_mi_clicked(self):

        pygame.mixer.music.stop()
        
        
        pygame.mixer.init()
        pygame.mixer.music.load("e.mp3")
        pygame.mixer.music.play(-1)

                   

    def btn_Detener_clicked(self):

        pygame.mixer.music.stop()

    
            
    
app = QtGui.QApplication(sys.argv)
MyWindow = MyWindowClass(None)
pygame.init()
MyWindow.show()
app.exec_()

Espero que les guste, Saludos 🙂

  1. Unknown dice:

    Esta genial! Pero que no falto la nota Do?

    Propongo la creación de una cuenta en GitHub para Python Diario!

    Me parece mejor publicar el código así: http://bit.ly/12NeIQV

    1. PythonDiario dice:

      Hola Ismael, gracias por Respuesta. Los sonidos de las notas son las cuerdas al aire (para poder afinarlas): MI, La, Re, Sol, Si, mi. Ya cree una cuenta en GitHub, en breve comienzo a subir el código ahi. https://github.com/pythondiario
      Saludos

  2. Anónimo dice:

    ¡Falta el mi agudo!
    El afinador está de 10 (si no fuera por ese nanusculo detalle)

  3. Ernanfer2 dice:

    Hola, me gusta python, quiero que me sugieras un curso desde cero hasta un nivel experto...gracias

  4. Claudio dice:

    Me encantaria podre mi propio afinador!! Recien estoy aprendiendo a programar ¿crees que es facil que pueda armarlo?

    1. PythonDiario dice:

      Hola Claudio, claro que si. Intenta con el código del afinador y cualquier cosa me consultas. Gracias por visitar el blog.

  5. Unknown dice:

    Hola Diego una pregunta, no me deja descargar el archivo con el programa, por favor ayudame para poder tener acceso a los archivos de los sonidos muchas gracias

    1. PythonDiario dice:

      Hola Mayra, ya actualice el enlace y modifique el código (me faltaba una cuerda :()

      Gracias por visitar el blog!!!

      Saludos

  6. Anónimo dice:

    hola diego cuando ejecuto el codigo me dice que no tengo el archivo pygame y ya lo descargue. Me podrias ayudar? pasandome el link de pygame

  7. Unknown dice:

    Oi Diego Blz
    che ante todo felicidades, quedo genial... Diego me tira una duda, si yo quisiera convertir esse en un executavle de windows... tu tienes algunos pasos para indicar.. gracias por todo

Deja una respuesta

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

Subir
White Monkey