Skip to content

Repository files navigation

Processamento de Sinais de Áudio em C

Este repositório contém a implementação do Trabalho 2 da disciplina de Fundamentos de Programação 1 da Universidade Tecnológica Federal do Paraná (UTFPR).

O objetivo principal deste projeto é aplicar conceitos de manipulação de vetores, alocação dinâmica de memória, laços de repetição e passagem de parâmetros por referência para aplicar efeitos digitais em sinais de áudio no formato .wav.


Autores

  • João Vitor Colla de Souza
  • Lucas Klein Barsch

Aviso de Autoria

Este projeto é um trabalho académico. Nem todo o código presente neste repositório é de nossa autoria. * O que nós desenvolvemos: Apenas a lógica de processamento de áudio e as funções contidas no ficheiro t2-2877554-2877589.c, além da documentação e relatório.

  • O que foi fornecido pelos professores: Os ficheiros base para leitura e gravação de áudio (wavfile.c e wavfile.h), as assinaturas das funções (trabalho2.h), os áudios originais de teste e os ficheiros main.c utilizados para testar as implementações. Estes materiais são de autoria dos docentes da disciplina (Prof. Bogdan T. Nassu, Profa. Leyza B. Dorini e Prof. Daniel F. Pigatto).

Funcionalidades Implementadas

O núcleo do projeto encontra-se no ficheiro t2-2877554-2877589.c, onde foram desenvolvidas as seguintes funções de processamento de áudio:

  1. mudaGanho: Altera o volume do áudio multiplicando cada amostra do sinal por um fator de ganho.
  2. misturaDados: Mescla dois sinais de áudio distintos (ex: juntar o som de uma guitarra e de um violão), somando as amostras elemento a elemento.
  3. inverteSinal: Inverte a ordem das amostras, fazendo com que o áudio seja reproduzido de trás para a frente.
  4. atrasaSinal: Desloca o sinal no tempo (para a frente ou para trás), preenchendo os espaços vazios com silêncio (zeros).
  5. filtroDaMedia: Aplica um filtro de média móvel (janela deslizante/passa-baixo) para suavizar o sinal, o que resulta num som mais abafado/grave.
  6. ecos (Função Extra): Cria um efeito de eco complexo combinando as funções anteriores. O sinal repete-se com atraso, redução de volume (decaimento) e um efeito progressivo de abafamento.

Estrutura do Repositório

Para que o projeto funcione corretamente, a estrutura de ficheiros deve ser a seguinte:

/
├── data/                       # Diretoria OBRIGATÓRIA contendo os áudios
│   ├── sonic2_gui.wav          # Áudio original 1 (exemplo)
│   ├── sonic2_per.wav          # Áudio original 2 (exemplo)
│   ├── sonic2_vio.wav          # Áudio original 3 (exemplo)
│   └── teste2_mistura.wav      # Ficheiro gerado após a execução
├── t2-2877554-2877589.c        # Implementação das funções de processamento
├── trabalho2.h                 # Cabeçalhos das funções do trabalho
├── wavfile.c                   # Biblioteca base fornecida para I/O de áudio
├── wavfile.h                   # Cabeçalhos da biblioteca base
└── main.c                      # Ficheiro de testes (ex: junta 3 sinais)

About

2° Trabalho da matéria de Fundamentos de Programação - UTFPR Curitiba, feito com Lucas Barsch.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages