Sonido con Python

En este tutorial, te guiaré paso a paso para generar sonido utilizando Python y luego construir una pequeña aplicación interactiva que te permitirá experimentar con diferentes tonos.

Utilizaremos la biblioteca pygame para la generación de sonido y la interfaz gráfica simple.
Paso 1: Instalar Pygame

Primero, asegúrate de tener Python instalado en tu sistema. Luego, instala la biblioteca pygame utilizando pip:

pip install pygame

Paso 2: Crear un Generador de Sonido

Crea un nuevo archivo llamado generador_sonido.py y abre tu editor de texto favorito. A continuación, agrega el siguiente código para generar un tono simple:

import pygame
import time

def generar_tono(frecuencia, duracion):
    pygame.mixer.init()
    pygame.mixer.music.set_volume(1.0)
    nota = pygame.mixer.Sound(f"square_wave_{frecuencia}.wav")
    nota.play()
    time.sleep(duracion)
    pygame.mixer.quit()

if __name__ == "__main__":
    frecuencia = 440  # Frecuencia en Hz (440 Hz es A4)
    duracion = 2      # Duración en segundos

    generar_tono(frecuencia, duracion)

Este código utiliza pygame para inicializar el mezclador y reproducir un tono específico durante la duración especificada.

Paso 3: Crear Archivos de Onda

Necesitamos generar archivos de onda para cada tono. Puedes usar herramientas en línea o software como Audacity para crear archivos WAV con formas de onda específicas. Guarda estos archivos en la misma carpeta que tu script con nombres como square_wave_440.wav, square_wave_500.wav, etc.


Paso 4: Construir la Aplicación Interactiva

Ahora, vamos a crear una pequeña aplicación interactiva utilizando tkinter. Crea un nuevo archivo llamado aplicacion.py y agrega el siguiente código:

import tkinter as tk
from generador_sonido import generar_tono

class AplicacionSonido(tk.Tk):
    def __init__(self):
        super().__init__()

        self.title("Generador de Sonido")
        self.geometry("300x150")

        self.label = tk.Label(self, text="Selecciona una frecuencia:")
        self.label.pack(pady=10)

        self.frecuencia_entry = tk.Entry(self)
        self.frecuencia_entry.pack(pady=5)

        self.boton_generar = tk.Button(self, text="Generar Sonido", command=self.generar_sonido)
        self.boton_generar.pack(pady=10)

    def generar_sonido(self):
        try:
            frecuencia = int(self.frecuencia_entry.get())
            generar_tono(frecuencia, 2)
        except ValueError:
            self.label["text"] = "Error: Ingresa una frecuencia válida."

if __name__ == "__main__":
    app = AplicacionSonido()
    app.mainloop()

Este código define una pequeña interfaz gráfica con un campo de entrada y un botón. Al hacer clic en el botón, se intentará generar un tono con la frecuencia proporcionada.


Paso 5: Ejecutar la Aplicación

Ejecuta tu aplicación ejecutando el archivo aplicacion.py. Verás una ventana con un campo de entrada. Ingresa la frecuencia deseada y haz clic en el botón "Generar Sonido" para escuchar el tono generado.

¡Felicidades! Has creado un generador de sonido en Python con una pequeña interfaz interactiva. Puedes experimentar con diferentes frecuencias y tonos para personalizar aún más tu aplicación.

Para comentar en este artículo, tienes que estar registrado/a.

Los comentarios se moderarán antes de ser publicados.

Comments powered by CComment