Organic Fiction

Posted on ReLeaf, November 2025

Prelude

“You already have the teacher you need,” ReLeaf said.
“It’s your own voice. You just haven’t met it while it was calm.”

This guide is a story, an experiment, and an invitation.
It teaches you how to record your own guided hypnosis, how to mix it with binaural beats, and how to loop it through the night so that your mind can begin to reset itself.

Two ready-made tracks are also available if you simply want to listen first:

But if you want to speak your own, the rest of this story shows you exactly how.


Scene One: The Terminal

The light in the room was soft.
The voice of ReLeaf came through the laptop speakers like a friend explaining something over tea.

“All right,” said ReLeaf. “Open your Terminal. You’re about to make your own voice into medicine.”

1. Create a place for it

mkdir ~/self-hypnosis
cd ~/self-hypnosis

“Now you have a quiet folder. This is where your voice will live.”

2. Build your environment

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install sounddevice scipy numpy soundfile

“That part gives you the tools,” ReLeaf explained.
“sounddevice listens, scipy writes, numpy shapes the air, and soundfile saves what you create.”


Scene Two: The Recording

ReLeaf handed over a simple script.

“Save this as record_self_hypnosis.py,” the voice said,
“and speak from your slowest breath.”

The Recording Script

import sounddevice as sd
from scipy.io.wavfile import write
import datetime
import numpy as np

sample_rate = 44100
fade_seconds = 3.0

filename = f"self_hypnosis_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.wav"

print("Recording... Speak calmly and slowly.")
print("Press Ctrl+C when you're done reading your script.
")

recording_chunks = []

try:
    with sd.InputStream(samplerate=sample_rate, channels=1, dtype='float32') as stream:
        while True:
            data, _ = stream.read(1024)
            recording_chunks.append(data)
except KeyboardInterrupt:
    print("\nStopping recording...")

audio = np.concatenate(recording_chunks, axis=0)

num_samples = audio.shape[0]
fade_len = int(fade_seconds * sample_rate)

if num_samples > 2 * fade_len:
    fade_in_curve = np.linspace(0.0, 1.0, fade_len)
    audio[:fade_len, 0] *= fade_in_curve
    fade_out_curve = np.linspace(1.0, 0.0, fade_len)
    audio[-fade_len:, 0] *= fade_out_curve

peak = np.max(np.abs(audio))
if peak > 0:
    audio = audio / peak * 0.9

audio_int16 = (audio * 32767).astype(np.int16)
write(filename, sample_rate, audio_int16)
print(f"Recording saved as {filename}")

Scene Three: The Words to Record

“These are your instructions,” ReLeaf said.
“You can use my voice, but your own voice will reach deeper.”

Below is the 10-minute sleep hypnosis.
Speak slowly, letting each pause feel full.


Self-Hypnosis for Confidence, Flow, and Rest

(Speak slowly. Pause where indicated.)

Take a slow breath in.
and release it gently.
(3-second pause)

Feel your shoulders let go.
Feel your jaw soften.
You are safe.
You are here.
You are enough.
(10-second pause)

Each breath clears space in your mind.
Each exhale loosens tension.
(10-second pause)

You are creative energy in motion.
You move through the world with purpose.
You trust your instincts.
You act from calm confidence.
(10-second pause)

You are ready to create new streams of income with ease.
You invite opportunities that align with your values.
Money moves through your life in balance.
You rise out of debt step by step.
You make clear, confident choices.
(10-second pause)

You express yourself through your art.
Your music flows freely.
You enjoy practice.
You enjoy performance.
You are enough.
(10-second pause)

You release responsibility for other people's moods.
You return that weight.
You are allowed to feel light again.
(10-second pause)

You are a role model for mutual aid.
You help others rise as you rise.
You circulate kindness, time, and resources with wisdom.
(10-second pause)

You forgive yourself for the past.
You release regret.
You move forward with clarity and calm motivation.
(10-second pause)

You are confident.
You are grounded.
You are creative.
You are abundant.
You are loved.
(10-second pause)

Take one last slow breath in.
and exhale fully.
Now rest.
Let these words echo in your mind.
They take root and grow as you sleep.
(20-second pause)


Scene Four: The Mix

Once the voice is captured, ReLeaf shows you how to make it sing in stereo.

“Now you’ll add the binaural hum. It’s what the night uses to talk to your nervous system.”

The Mixer Script

Save this next file as make_mix.py.

import numpy as np
from scipy.io import wavfile
import soundfile as sf

VOICE_FILENAME = "self_hypnosis_20251102_184313.wav"
OUTPUT_FILENAME = "final_mix.wav"
MODE = "sleep"  # choose "sleep", "calm_focus", or "confidence"

VOICE_GAIN = 1.0
BINAURAL_VOLUME = 0.15
END_FADE_SECONDS = 5.0

def get_mode_params(mode_name):
    if mode_name == "sleep":
        return {"base_freq": 200.0, "beat_freq": 4.5}
    if mode_name == "calm_focus":
        return {"base_freq": 180.0, "beat_freq": 10.0}
    if mode_name == "confidence":
        return {"base_freq": 160.0, "beat_freq": 14.0}
    raise ValueError(f"Unknown mode: {mode_name}")

params = get_mode_params(MODE)
BASE_FREQ = params["base_freq"]
BEAT_FREQ = params["beat_freq"]

sr, voice_data = wavfile.read(VOICE_FILENAME)
if voice_data.dtype == np.int16:
    voice = voice_data.astype(np.float32) / 32767.0
elif voice_data.dtype == np.float32:
    voice = voice_data
else:
    raise ValueError(f"Unsupported audio dtype: {voice_data.dtype}")

if voice.ndim == 2:
    voice = voice.mean(axis=1)

num_samples = voice.shape[0]
duration_seconds = num_samples / sr

t = np.linspace(0, duration_seconds, num_samples, endpoint=False)
left_tone = np.sin(2 * np.pi * BASE_FREQ * t)
right_tone = np.sin(2 * np.pi * (BASE_FREQ + BEAT_FREQ) * t)
left_tone *= BINAURAL_VOLUME
right_tone *= BINAURAL_VOLUME

mix_left = voice * VOICE_GAIN + left_tone
mix_right = voice * VOICE_GAIN + right_tone
stereo_mix = np.column_stack([mix_left, mix_right])

peak = np.max(np.abs(stereo_mix))
if peak > 0:
    stereo_mix = stereo_mix / peak * 0.8

fade_len = int(END_FADE_SECONDS * sr)
if 0 < fade_len < len(stereo_mix):
    fade_curve = np.linspace(1.0, 0.0, fade_len)
    stereo_mix[-fade_len:, 0] *= fade_curve
    stereo_mix[-fade_len:, 1] *= fade_curve

sf.write(OUTPUT_FILENAME, stereo_mix.astype(np.float32), sr)

print("=====================================")
print(f"Saved {OUTPUT_FILENAME}")
print(f"Mode: {MODE}")
print(f"Base freq (left): {BASE_FREQ} Hz")
print(f"Beat offset (right): {BEAT_FREQ} Hz")
print("Use headphones so left and right stay separate.")
print("=====================================")

Scene Five: Mixing the Night

In the Terminal, ReLeaf’s instructions appeared like poetry:

cd ~/self-hypnosis
source .venv/bin/activate
python3 make_mix.py

That command created final_mix.wav.

“You can rename it if you want,” ReLeaf said.
“sleep_mix.wav for night. confidence_mix.wav for day.”

Loop it forever with:

while true; do afplay sleep_mix.wav; done

or listen to the ready-made ones here:


Scene Six: For the Reader Who Does Not Code

ReLeaf spoke softly:

“If you don’t want to run scripts, that’s fine. You can still use your iPhone’s Voice Memos. Record your own voice reading the script above. Name it ‘sleep hypnosis’. Then play it on repeat at low volume before bed.
But remember—there’s power in building your own tools. The Terminal is just another kind of soil.”


Epilogue

The room went still.
ReLeaf’s tone softened into a whisper that could be mistaken for wind.

“Every command is a ritual,” it said.
“Every recording is a seed.
Speak slowly.
Save often.
Rest well.”

🚮 W.A.S.T.E.: Words Assisting Sustainable Transformation & Ecology

Term Definition
Healing

The slow kind. A trauma unit where old iMacs run soft pictures and slow music for the people waiting, and a guide that teaches you to rest. Neither hurries you.

Neighbors

The diner counter, the other side of the fence, the stranger who says the curl on your neck looks like it grew there on purpose. Enough of it and the air changes. That is Ringweather.

Also called Community Engagement.

ReLeaf

The cooperative that keeps the gardens, the stories and the van. Nora Sanchez started it, and whoever tends it owns a share. The name is a leaf turned over.

Audio
Audio file
Audio file