nativemind_sound

Sound-healing widgets of NativeMind made from handmade code (written without AI):

  • Pavlo Matvienko (aka Crazy8), 2021-11-02 — NmPlayButton, NmSelectPresetButton, NmPresetWindow;
  • Anton Dodonov, 2021–22 (iScillator) — NmSelectButton, NmSelectWindow, NmSelectScreen, nmFrequencySection, nmDouble2Str, nmMyBottomNavigationBar, nmMainAppBar / nmMainTitle, nmMainBody, nmIfSelect / nmPage*, nmL108t / nmL108o.

Every class, function and method carries its author line; the origin of each file is in PROVENANCE.md.

How it fits together

  • Editions come from configuration (Anton's keys title, pages, select, defaults, forces, visible, gradient*, forecolor*) through NmConfigs of nativemind_core.
  • NmGlobals is the state of one screen with Anton's globals.dart names; the carried widgets read it from the nearest NmSoundScope (no global state). Colors an edition does not set are filled in (pro / lite / dev crashed on forecolor before).
  • NmSoundScope owns the PageController and the frequency timer (both disposed) and drives an NmSoundEngine — the widgets never call a plugin. NmSoundGeneratorEngine of nativemind_sound_generator is the Android/iOS implementation.
final edition = NmConfigs(myConfigs).current();            // --dart-define=NM_EDITION=com.soundhealer.pro
final globals = NmGlobals.fromConfig(edition, translations: myProgramNames, onChanged: save);
MaterialApp(
  builder: (context, child) => NmSoundScope(globals: globals, engine: NmSoundGeneratorEngine(), child: child!),
  home: Builder(builder: (context) => Scaffold(
    appBar: nmMainAppBar(context),
    bottomNavigationBar: nmMyBottomNavigationBar(context),
    body: Container(
      decoration: BoxDecoration(gradient: NmGlobals.of(context).config['gradient']),
      child: nmMainBody(context),
    ),
  )),
);

Program lists and their translations (select.program, l108) are app data and are not part of this package.

Screens (documentation goldens, no Figma for sound)

vl pro lite dev
vl pro lite dev

Search screen: select · Pavlo's preset window: preset

Known (authors' layout, kept): the pages sit in a 300-px box, so three selectors (pro) overflow by 124 px (debug stripes in the golden); the list windows draw ListTiles on a colored Container (debug diagnostic only).

License

NativeMind NONC (see LICENSE). Handmade code of NativeMind people; see NOTICE.

Libraries

nativemind_sound
Sound-healing widgets from handmade code (Pavlo Matvienko 2021, Anton Dodonov 2021–22), the NmGlobals adapter, NmSoundScope and the NmSoundEngine port. See PROVENANCE.md for the origin of every file.