nativemind_sound

Sound-healing widgets of the NativeMind framework made from handmade code (written without AI): the SoundHealer / iScillator screens of 2021–22 — play button, preset window, selectors, search screen, pages, bottom navigation, app bar and the frequency section. The tone itself comes through the NmSoundEngine port; nativemind_sound_generator is the Android / iOS implementation.

Install

dependencies:
  nativemind_sound: ^1.0.0
  nativemind_sound_generator: ^1.1.0   # the engine (optional: any NmSoundEngine works)
import 'package:nativemind_core/nativemind_core.dart';
import 'package:nativemind_sound/nativemind_sound.dart';
import 'package:nativemind_sound_generator/nativemind_sound_generator.dart';

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),
    ),
  )),
);

How it fits together

  • Editions come from configuration (Anton's keys title, pages, select, defaults, forces, visible, gradient*, forecolor*, optional pageHeight) 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.
  • Program lists and their translations (select.program, l108) are app data and are not part of this package.
  • Moving an app's own copies of these components to the package: doc/migration-1.0.md.

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 unless the edition sets "pageHeight" (debug stripes in the golden; iScillator's pro edition uses 424); the list windows draw ListTiles on a colored Container (debug diagnostic only).

Handmade authors

71 % of lib/ is their code (894 of 1 262 lines; the rest is the NmGlobals / NmSoundScope / NmSoundEngine adapter by Claude Code). Every class, function and method carries its author line (PROVENANCE.md).

Author Role In this package
Pavlo Matvienko (aka Crazy8) freelance developer, started SoundHealer (2021-11-02) NmPlayButton, NmSelectPresetButton, NmPresetWindow; the frames of NmSelectButton / NmSelectWindow
Anton Dodonov founder and CTO; continued SoundHealer as iScillator (2021-11 … 2022-03) NmSelectButton, NmSelectWindow, NmSelectScreen, nmFrequencySection, nmDouble2Str, nmMyBottomNavigationBar, nmMainAppBar / nmMainTitle, nmMainBody, nmIfSelect / nmPage*, nmL108t / nmL108o; the editions mechanism

«Without AI» for both is confirmed by the CTO (2026-10-13). There is no Figma for the sound screens; the goldens above are the reference.

License

NativeMindNONC (see LICENSE), as the whole NativeMind framework. 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.