Learn Music Theory

A free course from scratch

FreeNo sign-upNothing uploaded

Never played music? Start here. No reading, just listening and tapping.

Starting out · Lesson 1 of 14

High and low sounds

0 of 14 done
Check yourself

Field guide

About the Learn Music Theory

A friendly music theory course for complete beginners, no instrument or experience needed. Twelve short lessons take you from what pitch is, through the piano keyboard, octaves, sharps and flats, beat and tempo, note lengths and time signatures, to reading notes on the staff, the major scale, intervals, chords and how songs use keys and chord progressions. Every idea comes with sounds you can play and an interactive keyboard or staff, and each lesson ends with a short quiz, including listening questions that train your ear. Your progress is saved in your browser, so you can do a lesson a day.

  1. Start with lesson 1 and turn your sound on.
  2. Read the short explanation and play with the demo: tap keys, press the play buttons.
  3. Answer the quiz to complete the lesson, then move on. Progress is saved automatically.
Questions

Frequently asked

Can I learn music theory without an instrument?

Yes. Every lesson plays its own examples, and the on-screen piano lets you try things out. An instrument helps later, but it isn't needed to understand the basics.

How long does the course take?

Each lesson takes about five minutes, so you can finish the course in an hour or spread it over a couple of weeks.

What should I learn after this?

Practise reading notes with the Note Reading Trainer, train your ear with Ear Training, explore chords with the Chord & Scale Explorer and play songs on the Online Piano.

Is it suitable for children?

Yes. The lessons use plain language, short steps and sounds, which suit curious kids as well as adult beginners.

Is what I type sent to a server?

No. The tool runs entirely in your browser and there's no server behind it, so what you type never leaves your device and nothing is stored. You can check: it keeps working if you go offline after the page has loaded.