replace Phrases section with following raag
import mido
from mido import Message, MidiFile, MidiTrack
# Map swaras to MIDI notes (C4=60, Sa = C)
swara_to_midi = {
"Sa": 60, "Ri": 62, "Ga": 63, "Ma": 65, # Ma is F# (tivra)
"Pa": 67, "Da": 69, "Ni": 70
}
# Define phrases (using swaras)
phrases = {
"Natabhiravi Nyasa_Tana": ["Ma", "Ga", "Ri", "Sa"], # Ma Ga Re Sa
"Natabhiravi Upanta_Tana": ["Sa", "Ri", "Ma", "Pa", "Ma"], # Sa Re Ma Pa Ma
"Natabhiravi Puraka_Tana_1": ["Sa", "Pa", "Da", "Pa"], # Sa Pa Da Pa
"Natabhiravi Puraka_Tana_2": ["Ga", "Pa", "Da", "Pa"], # Ga Pa Da Pa
"Natabhiravi Puraka_Tana_3": ["Da", "Ma", "Ga", "Ri", "Sa"] # Da Ma Ga Re Sa
}
# Generate one MIDI file per phrase
for phrase_name, swaras in phrases.items():
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)
# Add notes (quarter notes, 480 ticks per beat)
for swara in swaras:
note = swara_to_midi[swara]
track.append(Message("note_on", note=note, velocity=64, time=0))
track.append(Message("note_off", note=note, velocity=64, time=480))
# Save to MIDI file
mid.save(f"{phrase_name}.mid")
print("Generated MIDI files: Nyasa_Tana.mid, Upanta_Tana.mid, etc.")
Carnatic Raagas – Must-Know Set (~30 raagas)
Melakarta Raagas (Parent raagas)
- Mayamalavagowla – Basic for beginners (used to teach swaras)
- Kalyani – Bright, majestic
- Harikambhoji – Parent of many light ragas
- Shankarabharanam – Like major scale
- Kharaharapriya – Emotional and rich
- Todi – Heavy, intense
- Bhairavi – Devotional and soulful
- Hanumatodi – Same as Todi, full version
- Natabhairavi – Minor scale feel
- Charukesi – Emotional and film-like
Janya Raagas (Derived ragas)
- Mohanam – Pentatonic, sweet
- Hamsadhwani – Bright, beginner-friendly
- Abheri – Sad/romantic
- Reetigowla – Gamaka-rich
- Kambhoji – Majestic
- Saveri – Peaceful, traditional
- Suddha Dhanyasi – Soulful pentatonic
- Devagandhari – Temple-feel
- Yamunakalyani – Romantic, flowing
- Bilahari – Happy, bright
- Anandabhairavi – Gentle and feminine
- Ranjani – Colorful, film-friendly
- Sankarabharanam – Western C major equivalent
- Arabhi – Energetic and vibrant
- Kaanada – Deep and graceful
- Pantuvarali – Intense and meditative
- Begada – Royal and graceful
- Madhyamavati – Peaceful, used at the end of concerts
- Sri Raagam – Serious and devotional
- Nattai – Grand opening raga
Hindustani Raagas – Must-Know Set (~20 ragas)
- Yaman – Romantic, serene
- Bhairav – Spiritual, grave
- Bhairavi – Devotional and flexible
- Durga – Heroic, uplifting
- Malkauns – Meditative, deep
- Desh – Monsoon feel, light and lyrical
- Bageshree – Romantic, gentle
- Kafi – Sweet, folkish
- Hamsadhwani – Carnatic import, bright
- Marwa – Dusk-time, haunting
- Todi – Serious and complex
- Darbari Kanada – Heavy, majestic
- Khamaj – Romantic, playful
- Kedar – Calm, soothing
- Miyan ki Malhar – Rainy, dramatic
- Hindol – Morning, meditative
- Jog – Semi-classical, soulful
- Shivranjani – Emotional, popular in film
- Megh – Monsoon mood
- Ahir Bhairav – Blend of peace and devotion
Want a smaller essential list?
Here are 10 universal raagas (common to both systems or used in fusion):
Mohanam / Bhoop Kalyani / Yaman Shankarabharanam / Bilawal Todi Bhairavi Kharaharapriya / Kafi Hindolam / Malkauns Hamsadhwani Durga / Shuddha Saveri Desh
Mayamalavagowla¶
Natabhiravi¶
phrases = {
"Natabhiravi Nyasa_Tana": ["Ma", "Ga", "Ri", "Sa"], # Ma Ga Re Sa
"Natabhiravi Upanta_Tana": ["Sa", "Ri", "Ma", "Pa", "Ma"], # Sa Re Ma Pa Ma
"Natabhiravi Puraka_Tana_1": ["Sa", "Pa", "Da", "Pa"], # Sa Pa Da Pa
"Natabhiravi Puraka_Tana_2": ["Ga", "Pa", "Da", "Pa"], # Ga Pa Da Pa
"Natabhiravi Puraka_Tana_3": ["Da", "Ma", "Ga", "Ri", "Sa"] # Da Ma Ga Re Sa
}