A web application for exploring jazz theory. Built with Rails 8.0 and Ruby 3.4.4.
Jazzity provides an interactive platform for studying jazz theory concepts including:
- Chords - Explore chord qualities, voicings, and symbols in all keys
- Scales & Modes - Browse musical scales and their modes with staff notation
- Progressions - Study common chord progressions and their voice leading
- Voice Leading - Analyze smooth transitions between chord voicings
The application allows you to explore these concepts in any key, providing both theoretical knowledge and practical musical examples.
- Ruby: 3.4.4
- Rails: 8.0.4
- Database: SQLite (development)
- Testing: RSpec, FactoryBot, Capybara, Shoulda Matchers
- Frontend: Turbo, Stimulus, Importmap Rails
- Ruby 3.4.4
- Bundler
- Clone the repository:
git clone https://github.com/rubiety/jazzity.git
cd jazzity- Install dependencies:
bundle install- Set up the database:
bundle exec rake db:migrate
bundle exec rake db:seed- Start the server:
bin/rails server- Visit the application:
http://localhost:3000
Run the full test suite:
bundle exec rake
# or
bundle exec rspecRun a specific spec file:
bundle exec rspec spec/models/chord_spec.rb- Run migrations:
bundle exec rake db:migrate - Seed database:
bundle exec rake db:seed - Reset database:
bundle exec rake db:reset
- Key: Represents musical keys with tonal relationships
- Chord: Chord qualities with voicings and symbols
- Scale: Musical scales with modes
- Mode: Scale modes with chord relationships
- Progression: Chord progressions with components
- Voicing: Chord voicings with voice leading analysis
- VoiceLeading: Analysis of transitions between voicings
Comprehensive search across all jazz theory concepts with autocomplete support.
Musical notation display for chords, scales, modes, and progressions.
Explore any concept in any musical key (e.g., "Cmaj7", "Ab Blues Scale", "F Dorian Mode").
Examine smooth voice leading between chord voicings.