Inspiration
As a guitar player, I thought it would be really handy to have a guitar tuner skill. After searching for the skill, I came across some skills that had terrible user experience. It was barely possible to use them. So, we decided to make a perfect one, by ourselves.
What it does
It helps you tune your guitar. If you ask it to play all strings, it can play all strings in order. You can also specify the speed saying "play fast" or "play slow". It is also possible to ask for each string individually such as "play low E" or "play note A" etc. If you choose to ask for each string separately, you can say "next" or "previous" to navigate through the strings.
How we built it
We implemented Guitar Tuner as a custom skill. The backend is Node.js running on AWS Lambda. Original audio files are converted to Alexa-friendly format to be able to be used in SSML, and they are hosted in an AWS S3 bucket. After each development iteration, we tested our skill using both an actual Amazon Echo device and Alexa Simulator in the console. In terms of development methodology, we followed an agile process that is in between Kanban and Scrum, due to our compact team size of two. We first created a backlog and a flowchart and specified the required utterances, slots, prompts and audio files. Then we started implementing features one by one, testing the whole skill at the end of each iteration and enhancing the design if required.
Challenges we ran into
We wanted the users to have as less friction as possible. So, we didn't want them to have to ask for each note individually. Instead, we wanted them to be able to give one command and tune all strings. The problem here is the fact that, each guitar player needs different amount of time to tune their guitar. Most people are average guitar players. But the professionals are faster and the beginners are slower. So, we found the solution by adding a speed intent. If you just say "tune all strings", the speed is implicitly set to moderate. But if you say "tune all strings slow" or "tune all strings fast", the speed will be set accordingly. No one will have to complain that the given speed is too fast or too slow. They will be able to tune their guitar with only one command.
Accomplishments that we're proud of
- We have managed to make a really stable skill that understands the commands clearly.
- We have covered all the different utterances we could come up with. The list is really rich.
- We have recorded the guitar sounds professionally in our home studio, so the sound quality is really good.
What we learned
We have made several user tests and realised that some people can come up with different phrases or have different expectations. So it is important to make as many tests as possible and improve the skill accordingly. On the other hand, we have learned a lot about voice design and programming for voice interfaces, due to the problems we have encountered and solved.
What's next for Guitar Tuner
- Currently there is only standard EADGBE tuning. We are going to add more tuning styles such as drop D, drop C etc.
- We will improve the utterances regularly since it is always possible to improve it further.
- We will add a guitar picture showing which string is currently being tuned, for echo show and echo spot devices.
- Currently the logo is drawing of a guitar. We are working on a more unique design and we will update it in the future.
Built With
- aws-lambda
- node.js

Log in or sign up for Devpost to join the conversation.