Hymnario Android App
Custom MIDI rehearsal engine for guided hymn learning. Built from OCR-extracted content with offline-first Firebase architecture, real-time audio processing, and 6+ years of continuous production maintenance.
Origin
The project began from a real accessibility gap: the denomination using the IDP hymnbook had no official mobile solution, leaving worship communities relying on scanned PDFs with poor readability and impractical mobile usage during services and rehearsals.
Building the product required a significant content initiative: extracting hymn data from scanned PDFs using OCR, generating a raw dataset, then manually normalizing and structuring ~425 individual hymns into a clean, searchable format. This foundation enabled a practical digital hymn experience focused on usability and accessibility.
The product evolved from a digital hymn reference into a guided learning system. Many users did not know how unfamiliar hymns should sound, so a custom MIDI playback engine was built to provide synchronized, karaoke-like accompaniment for rehearsal. Features like multi-channel audio separation, adjustable playback speed, and real-time chord transposition emerged from actual musician workflows.
Hymnary was organically adopted church-to-church across Mexico, with smaller usage extending to Spanish-speaking communities abroad. The app has been maintained in production for 6+ years with continuous updates addressing Android ecosystem changes, Play Store requirements, and user feedback.
Product Preview

Guided MIDI playback with synchronized lyrics, chords, and rehearsal controls

Hymn organization and offline content access

Local MIDI management for accompaniment playback

Chord-aware lyric reading for musicians

Core tools for hymn practice and worship preparation

Guided MIDI playback with synchronized lyrics, chords, and rehearsal controls

Hymn organization and offline content access

Local MIDI management for accompaniment playback

Chord-aware lyric reading for musicians

Core tools for hymn practice and worship preparation
Swipe to see more
Technical Challenges & Solutions
Custom MIDI Sequencer for Guided Accompaniment
Problem
Many users did not know how unfamiliar hymns should sound. Reading lyrics alone does not teach melody or timing. Users needed a karaoke-like guided rehearsal experience where synchronized accompaniment plays while lyrics display—something standard Android media APIs could not provide due to timing precision limitations.
Solution
Built a custom MIDI sequencer from scratch with multi-channel audio separation (melody/accompaniment/bass), real-time tempo scaling, and note-event-driven lyric synchronization. Enables the guided practice experience where users hear and see the hymn simultaneously—complex timing requirements that off-the-shelf solutions cannot meet.
Real-Time Audio Processing Engine
Problem
Musicians rehearse in different contexts: vocalists practice at reduced speeds, instrumentalists need accompaniment-only tracks, some want melody guidance. Pre-generating every key/speed/channel combination for ~425 hymns would require thousands of MIDI files and balloon app size.
Solution
Implemented real-time note-event transformation for key transposition and tempo adjustment without pitch distortion. Combined with multi-channel mixing, this enables infinite musical variations from single MIDI files—keeping app size small while supporting diverse rehearsal workflows.
Offline-First Architecture + Firebase Backend
Problem
Places of worship often have poor connectivity, yet new hymn MIDI files and content updates needed instant distribution without forcing Play Store updates with 2-3 day delays. Required balancing offline reliability with real-time backend capabilities.
Solution
Architected hybrid local-first/cloud-sync system: Room persistence for offline functionality, Firebase multi-service backend (Firestore for content, Storage for MIDI hosting, FCM for push notifications, Analytics/Crashlytics for monitoring) for instant updates. Intelligent local caching ensures seamless offline playback while enabling push-driven content distribution without app releases.
Custom Canvas Rendering for Complex Typography
Problem
Synchronized lyric-chord display required precise positioning that standard Android TextViews could not handle—especially maintaining alignment during real-time MIDI-driven updates.
Solution
Built custom Canvas-based view with manual text layout calculations. Handles mixed lyrics and chord symbols with tight synchronization to audio timing, after validating timing limitations of auto-scrolling approaches across device hardware.
Extended Toolkit
Learnings
- Audio systems engineering: Building a custom MIDI sequencer exposed timing limitations in Android media APIs, requiring thread-aware synchronization and hardware-aware event scheduling.
- Production BaaS architecture: Multi-service Firebase integration (Firestore, Storage, FCM, Analytics, Crashlytics) enabled real-time content distribution and instant updates without Play Store releases.
- Data transformation at scale: OCR extraction + manual normalization of ~425 unstructured hymns revealed the complexity of converting scanned documents into production-quality searchable content.
- Product ownership: 6+ years of production maintenance required handling Android ecosystem changes, Play Store policy updates, and evolving user expectations as continuous responsibility.
- Domain-driven iteration: Musician workflows directly shaped technical implementation—MIDI features emerged from rehearsal needs rather than assumptions, reinforcing the value of user-grounded product development.
Technical Exploration
Research directions and engineering curiosity — not roadmap commitments.
Interactive Rehearsal Modes
Exploring adaptive lyric progression and karaoke-style guided rehearsal experiences that respond to user practice patterns and learning speed.
Pitch Detection for Vocal Feedback
Researching on-device pitch detection to help users identify off-key sections and receive guided rehearsal feedback during practice.
Simplified Subscription Experience
Evaluating single-tier subscription model to reduce UX friction while preserving advanced rehearsal features for dedicated users.