انتقل إلى المحتوى الرئيسي

Quran Search, Juz & Ayah Tracking

Beyond playing whole surahs, Safi ships the full Uthmani Quran text on the device. This powers search, range playback and a live ayah indicator.

The Quran panel on the dashboard has an Arabic search box. Type without diacritics - Safi normalizes both sides the same way:

  • tashkeel and tatweel are ignored
  • آ أ إ ٱ ء all match ا, ؤ matches و, ى and ئ match ي, ة matches ه

So انعمت finds أَنْعَمْتَ (1:7) and الرحمن finds ٱلرَّحْمَٰنِ. Results are ordered by surah and ayah. Clicking a result plays the surah starting at that ayah, provided the reciter has timing data (see below); otherwise the surah plays from its start.

Juz and hizb playback

The same panel has juz (1-30) and hizb (1-60) pickers. Pick a reciter and a part; Safi starts at the part's first ayah (mid-surah when the boundary falls inside one, using the timing data) and advances surah by surah, stopping exactly at the part's end.

Without timing data for the chosen reciter, the part starts at its first surah's beginning and ends after its last surah - an approximation of the true boundary.

Live ayah indicator

While a surah with timing data plays:

  • the LCD shows an آية badge next to the progress ring
  • the dashboard shows the ayah text under the track title, with a ﴿۩﴾ marker on the 15 prostration verses
  • a Repeat ayah button seeks back to the current ayah's start

Timing data

Per-surah ayah timings live on the SD card in timings/<reciter>/NNN.json, one file per surah. Reciters downloaded from everyayah.com via tools/download_reciter.sh get timings generated automatically from the concatenated ayah durations. Reciters from mp3quran.net do not; timings may be added later per reciter.

Currently timed: Ali Gaber and Al-Husary (radio). Untimed (played whole-surah, no ayah display): Al-Minshawi, Mahmoud Ali Al-Banna and Ahmed Bin Talib - their mp3quran recordings do not match the everyayah/quran.com recordings, so foreign timing data would drift against the audio.

Translations

English translations are stored on the SD card in translations/en/NNN.json (per-surah files). When present, the dashboard shows the translation of the current ayah under the Arabic text.