psavelis / go-tuner-api

Pitch Perfect Tuner API using Golang and Hexagonal Architecture / Ports & Adapters

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-tuner-api

Golang AudioProcessing Ports and Adapters

1. How to run πŸš€

Running the API using docker-compose

docker-compose up

Running the API without Docker

$ go run cmd/main.go 

2. Using the tune endpoint 🎡

Easily use the /tune/:frequency endpoint

# example for retrieving a Note from 440.1Hz
curl http://localhost:3000/tune/440.1

🎢 Sample response:

{
  "id": "1",
  "name": "A4",
  "keyNumber": 49,
  "frequency": {
    "min": 408.87616512680097,
    "max": 456.5655947149062
  },
  "pitchPerfect": 432
}

Roadmap πŸ“ˆ:

Status Feature
βœ… Dockerfile
βœ… Docker-compose
βœ… K8s deployment
βœ… Automated deploy
βœ… Unit tests
⬜️ gRPC Adapter
⬜️ App (frontend client) (wip)

Sample client use case πŸ”:

  • UC01 - Dummy Nextjs client application through browser's AudioContext (MediaStreamSource and FFT) input

sample client

About

Pitch Perfect Tuner API using Golang and Hexagonal Architecture / Ports & Adapters

License:MIT License


Languages

Language:Go 97.0%Language:Dockerfile 3.0%