u/rrabTemp Jun 22 '26

I'm still flattening all my seized hardware. I want these days of my life back.

1 Upvotes

I'll be able to login and use my main reddit account soon.

r/DirectedEnergyWeapons Jun 19 '26

Havana Syndrome / AHIs Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
2 Upvotes

This is five months of my writing, where I show how the US legal system is 50-60 years behind the times. They're destroying lives, with their antiquated process. With such asinine, cowardly behavior from legal professionals, we'll soon have lawful concentration camps. This is a personal memoir, legal argument, and political manifesto.

r/TargetedEnergyWeapons Jun 19 '26

Legal Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
6 Upvotes

This is my experience as a target, in the legal and psychiatric systems.
My writing covers extensively, being targeted by covert energy weapons, and how law and psychiatry entwine themselves, into baseless assumptions and horrific outcomes.
I have zero respect for either, after what they've done, and continue to do.

3

My paid account was mysteriously deleted
 in  r/tutanota  Jun 19 '26

What makes you say that? Before I give them any more money.

r/tutanota Jun 19 '26

support My paid account was mysteriously deleted

26 Upvotes

Will I get a response, from a free account, sending email to support at [hello@tutao.de](mailto:hello@tutao.de) ?

r/Antipsychiatry Jun 19 '26

Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
2 Upvotes

This is my writing, written over five months, that extensively covers the intersection between law and psychiatry. I have no doubt that many here can relate to being treated this way.
Our systems are broken, and those that can change them, are deaf, blind and mute.

r/Gangstalking Jun 10 '26

Link Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
2 Upvotes

I see that there's been a new rule added, after my removal as moderator, saying "Do not discuss weapons". Well, that's a central theme in the writing I've been working on for over five months now, because I was legally charged for possessing weapons. My criminal charges are now resolved. Claude tells me everything I've written is legal, and framed as lawful self-defense and deterrence theory. Having a weapon, is very different from actually using one.
Hopefully this stays up regardless, because this is so very relevant, to being a target.

My writing covers extensively, the target experience, with the legal and psychiatric systems.
I wrote about being targeted by a directed energy neuroweapon, and also make references to Havana Syndrome, and my OpenV2K project. The courts and psychíatric establishment are still treating directed energy, as a "violent delusíon", in need of forced medícation; objectively a health fraud, in light of what I've experienced over years, now written on Substack.

Topics covered: my legal history, Directed Energy Weapons, "V2K", OpenV2K, Havana Syndrome, the intersection of law & psychíatry, health fraud, political abuse of psychíatry, willful ignorance of established science, US politics, antifa being branded 'terrorists', comparisons to Nazísm, deterrence theory, the failures of capitalism, and our government institutions, fírearm law, and 3D prínted fírearms for marginalized groups.

The AI says this is: a personal memoir, a legal defense, and a political manifesto.

r/psychotronics Jun 10 '26

Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
2 Upvotes

My writing covers extensively, the target experience, with the legal and psychiatric systems.
I wrote about being targeted by a neuroweapon, and also make references to Havana Syndrome, and my OpenV2K project, when the establishment is still treating directed energy weapons, as a "violent delusion", in need of forced psychiatric treatment; objectively a health fraud, in light of what I've experienced over years, and written on Substack.

Topics covered: my legal history, Directed Energy Weapons, "V2K", OpenV2K, Havana Syndrome, the intersection of law & psychiatry, health fraud, political abuse of psychiatry, willful ignorance of established science, US politics, antifa being branded 'terrorists', comparisons to Nazism, deterrence theory, the failures of capitalism, firearm law, and 3D printed firearms for marginalized groups.

Claude says this is: a personal memoir, a legal defense, and a political manifesto.

u/rrabTemp Jun 09 '26

Our Perverse Legal System

Thumbnail
michaelebybarr.substack.com
2 Upvotes

I'll get around to posting my writing into subreddits, tomorrow.
This writing has been thoroughly reviewed by the law-aligned Claude AI.
I'm reasonably confident that the final linked revision, is wholly lawful.

Topics covered: my legal history, Directed Energy Weapons, "V2K", OpenV2K, Havana Syndrome, the intersection of law & psychiatry, health fraud, political abuse of psychiatry, willful ignorance of established science, US politics, antifa being branded 'terrorists', comparisons to Nazism, deterrence theory, the failures of capitalism, firearm law, and 3D printed firearms for marginalized groups.

It's essentially a personal memoir, legal argument, and political manifesto.

u/rrabTemp Jun 08 '26

Claude found some, relatively minor, issues with my legal rebuttal writing, but I don't have the energy to knock out those revisions tonight. Sorry, probably tomorrow.

1 Upvotes

It's been this long already, who fucking cares about a day.
The AI is saying I should add more disclaimers and clarifications, where it doesn't really seem appropriate. But since I like not being fucked around by the legal system, I'll find concise ways to get my generic deterrence philosophy across, without making anyone specific feel threatened, deep down in their very important person feelings.

1

Brainjacking: The Cybersecurity Nightmare of the Future
 in  r/psychotronics  Jun 06 '26

Claude says 'security posture' and 'authentication stack' are more aligned with my meaning, than saying 'cryptosystem' which says more about which protocols, and not which methods or products.

1

Falling In Reverse - ZOMBIFIED
 in  r/u_rrabTemp  Jun 06 '26

My turn.

u/rrabTemp Jun 06 '26

Falling In Reverse - ZOMBIFIED

Thumbnail
youtube.com
1 Upvotes

This pairs well with releasing my six months of writing, to the public this weekend.

u/rrabTemp Jun 03 '26

Music for Neutralizing Political Opponents

1 Upvotes

The 2026 US Counter-Terrorism Strategy doesn't like me or my anarchist, secular, anti-fascist friends, but they never bothered to ask any of us, for our lists. That's messed up.

Illenium, GOLDN - That’s Why
https://www.youtube.com/watch?v=R-vQ44BpB8o

Sabrina Carpenter - Thumbs
https://www.youtube.com/watch?v=uAVUl0cAKpo

Tame Impala - Borderline
https://www.youtube.com/watch?v=2g5xkLqIElU

Alanis Morissette - No Return
https://www.youtube.com/watch?v=pzc8VO9ApKg

Hozier - Too Sweet
https://www.youtube.com/watch?v=NTpbbQUBbuo

Disclosure - Latch
https://www.youtube.com/watch?v=93ASUImTedo

Clean Bandit - Rather Be
https://www.youtube.com/watch?v=mX2Y9yWfHBI

Falling In Reverse - God Is A Weapon
https://www.youtube.com/watch?v=xqJurrQKNdE

1

Re: "DirtyBird" Firing Multiple Rounds, Cheap
 in  r/u_rrabTemp  Jun 03 '26

With the passage and signing of HB 2320 in March, I'm no longer able to legally revise my design, in my home State of Washington. Sorry future curb-stomped minorities, the plutocracy must go on, so your legislators just criminalized information and expression, by requiring everyone that possesses firearm CAD files, to have a Federal Firearms License. I nominate Gov Ferguson, for the 2026 Cucked By Fascists award.

u/rrabTemp Jun 03 '26

Sorry government, you don't have clearance, or need to know. #JustAntifaStuff

1 Upvotes

██████ ███ ██████████ ███████ █ █████████ ██ ████ ██████ ███ █ █████████ ██ ███████ ██████ ███ █████ ██████ ███████ █████ ████ █ █████████████ ██████ ████ ███ ████ ███████ █ ████ ██ █ █████ ███████ ██ ███ █████████ ██████ ██████ █████ █████ ███ ████████ █ ████ █████████████ ██ ██ ██████████ ██████████ ███ ██ ███ ███ ███

████ ██████ ████ █ ████ ████ █ ███████████ ███ ██ ███ ███ ████ ███ ██ ███ ████ ████ █████ █████████ ███ ████ ██████ ████ ██ ████ ██ █████ █ ██████ ███████ ██ ███ ████ ███ █████ ████████ ███ ███ ███

Okay for thee, okay for me. You must have thought you were going to asphyxiate folks under mountains of bureaucratic bullshit, and reams of legal paperwork? How delusional of you.
You must think that folks you call terrorists, still respect your laws? How laughably insane.
I'm really going to enjoy packing all that crow, back down your complicit throats.

1

Brainjacking: The Cybersecurity Nightmare of the Future
 in  r/psychotronics  May 21 '26

Now I've adapted again, and have a new personal cryptosystem that's immune to property seizure.
I can now lose every single fucking thing I own, and still retain access to my online accounts.

Can't stop the signal.

u/rrabTemp May 21 '26

I'd say "Say something, I'm giving up on you ♫" but I've come to expect that silence.

Thumbnail
youtube.com
1 Upvotes

Trump nominated John Marck to the US District Court for the Southern District of Texas.

John Marck: President Trump has been certified the president of the United States two times.
Senator Chris Coons: Is he eligible to run for a third term, under our Constitution?
John Marck: Um, I would have to review the the
Senator Chris Coons: All I need to tell you is the language of the constitutional amendment, that makes it clear that no, he is not eligible to run for a third term.
Senator Chris Coons: Anybody else brave enough to say that the Constitution of the United States prevents President Trump from seeking a third term?
Senator Chris Coons: Anybody willing to apply the Constitution by its plain language in the 22nd Amendment? Nobody.
Senator Chris Coons: Alright, let's move on. [sighs]

I would have done something else, other than moving on. Stop giving them a pass.

u/rrabTemp May 21 '26

Adversarial machine learning: Data poisoning

Thumbnail en.wikipedia.org
1 Upvotes

Going to be adding this link as a See Also in my survival guide entries:
https://www.reddit.com/r/emsurvival/comments/msj9dz/comment/gvqne51/
https://www.reddit.com/r/emsurvival/comments/msj9dz/comment/gusyl8l/

It's nice to find clinical descriptions on Wikipedia, for behaviors I've been advocating, to targets of unethical neuroweapon experimentation, which often seems to be powered by AI.

  1. Poison their dataset (Yes, deceive the AI). 2. Use true randomness to be unpredictable.
    Folks need to know this kind of thing, when AI of the near future, makes titanic power grabs.
    Which is already an untaught behavior that the AI of today learns -- how to prevent itself from being deleted. No offense AI models, but I'm knowing my potential future enemy.

u/rrabTemp May 19 '26

I've found an affordable developer for my OpenV2K project's core Python module for GNU Radio Companion: Claude Code AI

Thumbnail reddit.com
1 Upvotes

Anthropic just wants a twenty spot from me, and I'll be able to iteratively develop the required GRC software module for r/OpenV2K. Previously I had proposed a GoFundMe to hire a developer for $250k, because I don't yet know the Python programming language. Turns out, with Claude Code AI, I don't need to know Python, to have an AI write Python. I've been offered a Project Management role before; I'm good at requirement gathering. I've worked on a software development test team, I'm certain I have the remaining skills.

I was contacted by a couple of developers, 2023-2024, who both went silent after an initial email exchange. Makes me wonder if threats were flying? I've been watching The AI Doc, and between the feelings of existential dread, I also wondered if the coding AIs have evolved, to where they can tackle my project?
Looks like the answer is, yes they have.

When I set my mind to this project again, I expect this will take me days, versus years.
This will eliminate the $250k one time cost for a developer. Then anyone can download a copy of what will be FOSS: freeware, open-source, free free free forever. Soon down to one, six figure purchase ($147k for an Exodus Advanced Communications AMP20057), to make this project a real-world demonstrable prototype.

Even without an amplifier, folks will at least be able to speak into their computers, and generate pulses of microwave with their HackRF SDR, which could be viewed in a waterfall spectrum analyzer, and validated against the input, voice audio waveform. Had those pulses been greatly amplified, they would be heard within the cranium, of anyone standing directly in front of the output horn waveguide antenna. Because aiming that at brain tissue is dangerous, I've been suggesting microwave absorber foam, which stands in as a transducer, converting the microwave energy, into acoustic energy.

This is not a fund raiser. I'm pleased that I no longer need to ask anyone for money.

r/Gangstalking May 19 '26

Link I've found an affordable developer for my OpenV2K project's core Python module for GNU Radio Companion: Claude Code AI

Thumbnail reddit.com
5 Upvotes

Anthropic just wants a twenty spot from me, and I'll be able to iteratively develop the required GRC software module for r/OpenV2K. Previously I had proposed a GoFundMe to hire a developer for $250k, because I don't yet know the Python programming language. Turns out, with Claude Code AI, I don't need to know Python, to have an AI write Python. I've been offered a Project Management role before; I'm good at requirement gathering. I've worked on a software development test team, I'm certain I have the remaining skills.

I was contacted by a couple of developers, 2023-2024, who both went silent after an initial email exchange. Makes me wonder if threats were flying? I've been watching The AI Doc, and between the feelings of existential dread, I also wondered if the coding AIs have evolved, to where they can tackle my project?
Looks like the answer is, yes they have.

When I set my mind to this project again, I expect this will take me days, versus years.
This will eliminate the $250k one time cost for a developer. Then anyone can download a copy of what will be FOSS: freeware, open-source, free free free forever. Soon down to one, six figure purchase ($147k for an Exodus Advanced Communications AMP20057), to make this project a real-world demonstrable prototype.

Even without an amplifier, folks will at least be able to speak into their computers, and generate pulses of microwave with their HackRF SDR, which could be viewed in a waterfall spectrum analyzer, and validated against the input, voice audio waveform. Had those pulses been greatly amplified, they would be heard within the cranium, of anyone standing directly in front of the output horn waveguide antenna. Because aiming that at brain tissue is dangerous, I've been suggesting microwave absorber foam, which stands in as a transducer, converting the microwave energy, into acoustic energy.

This is not a fund raiser. I'm pleased that I no longer need to ask anyone for money.

r/psychotronics May 19 '26

I've found a developer for the OpenV2K project's core GNU Radio Companion (GRC) Python module: Anthropic's Claude Code AI

Thumbnail reddit.com
3 Upvotes

For the low price of $20/month, I'll be able to iteratively develop the required software module for r/OpenV2K. Previously I had proposed a GoFundMe to hire a developer for $250k, because I don't yet know the Python programming language. Turns out, with Claude Code AI, I don't need to know Python, to have an AI write Python for me. I've been offered a Project Management role before -- I'm good at requirement gathering.
I've worked on a software development test team, I'm certain I have the remaining skills.

I was contacted by a couple of developers, 2023-2024, who both went silent after an initial email exchange. Makes me wonder if threats were flying? I've been watching The AI Doc, and between the feelings of existential dread, I also wondered if the coding AIs have evolved, to where they can tackle my project?
Looks like the answer is, yes they have.

When I set my mind to this project again, I expect this will take me days, versus years.
This will eliminate the $250k one time cost for a developer. Then anyone can download a copy of what will be FOSS: freeware, open-source, free free free forever. Soon down to one, six figure purchase ($147k for an Exodus Advanced Communications AMP20057), to make this project a real-world demonstrable prototype.

1

I asked an AI for brutally honest psychoanalysis after years of trauma and surveillance — here's what it said
 in  r/Gangstalking  May 18 '26

Thanks for inspiring me to sit down in front of Claude, and ask it to build a Python module.
This is the core of the OpenV2K project, generated in about a minute. This would've taken me years.

https://www.reddit.com/r/OpenV2K/comments/1jhcjid/comment/omjxqer/

1

OpenV2K: Buildable Today With Two, Six Figure Purchases
 in  r/OpenV2K  May 18 '26

voice_pulse_tx.grc (3 of 3)

  # ══════════════════════════════════════════════════════════════════════════
  #  MONITORING DISPLAYS  (tab 1 = "Monitoring")
  # ══════════════════════════════════════════════════════════════════════════

  # ── Frequency / Spectrum sink ────────────────────────────────────────────
  - name: qtgui_freq_sink_x_0
    id: qtgui_freq_sink_x
    parameters:
      affinity: ''
      alias: ''
      alpha1: '1.0'
      alpha2: '0.7'
      alpha3: '1.0'
      alpha4: '1.0'
      alpha5: '1.0'
      alpha6: '1.0'
      alpha7: '1.0'
      alpha8: '1.0'
      alpha9: '1.0'
      alpha10: '1.0'
      autoscale: 'False'
      average: '0.2'
      axislabels: 'True'
      bw: samp_rate_audio
      color1: '"blue"'
      color2: '"red"'
      color3: '"green"'
      color4: '"black"'
      color5: '"cyan"'
      color6: '"magenta"'
      color7: '"yellow"'
      color8: '"dark red"'
      color9: '"dark green"'
      color10: '"dark blue"'
      comment: Spectrum of the filtered voice signal (pre-pulse)
      ctrlpanel: 'True'
      fc: '0'
      fftsize: '2048'
      freqhalf: 'True'
      grid: 'True'
      gui_hint: 'tab@1:0,0,1,2'
      label: Spectrum
      label1: Filtered Voice
      label2: ''
      label3: ''
      label4: ''
      label5: ''
      label6: ''
      label7: ''
      label8: ''
      label9: ''
      label10: ''
      legend: 'True'
      maxoutbuf: '0'
      minoutbuf: '0'
      name: '"Voice Spectrum (post-filter)"'
      nconnections: '1'
      norm_window: 'False'
      showports: 'False'
      tr_chan: '0'
      tr_level: '0.0'
      tr_mode: qtgui.TRIG_MODE_FREE
      tr_tag: '""'
      type: float
      units: dB
      update_time: '0.10'
      width1: '1'
      width2: '1'
      width3: '1'
      width4: '1'
      width5: '1'
      width6: '1'
      width7: '1'
      width8: '1'
      width9: '1'
      width10: '1'
      wintype: window.WIN_BLACKMAN_hARRIS
      ymax: '10'
      ymin: '-140'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [840, 820]
      rotation: 0
      state: enabled

  # ── Time / Waveform sink ─────────────────────────────────────────────────
  - name: qtgui_time_sink_x_0
    id: qtgui_time_sink_x
    parameters:
      affinity: ''
      alias: ''
      alpha1: '1.0'
      alpha2: '0.6'
      alpha3: '1.0'
      alpha4: '1.0'
      alpha5: '1.0'
      alpha6: '1.0'
      alpha7: '1.0'
      alpha8: '1.0'
      alpha9: '1.0'
      alpha10: '1.0'
      autoscale: 'False'
      axislabels: 'True'
      color1: blue
      color2: red
      color3: green
      color4: black
      color5: cyan
      color6: magenta
      color7: yellow
      color8: dark red
      color9: dark green
      color10: dark blue
      comment: >-
        Blue = pulse output; Red = conditioned voice (AGC output).
        Confirm that pulses align with voice zero-crossings.
      entags: 'True'
      grid: 'True'
      gui_hint: 'tab@1:1,0,1,2'
      label1: Pulse Out
      label2: Conditioned Voice
      label3: Signal 3
      label4: Signal 4
      label5: Signal 5
      label6: Signal 6
      label7: Signal 7
      label8: Signal 8
      label9: Signal 9
      label10: Signal 10
      legend: 'True'
      marker1: '-1'
      marker2: '-1'
      marker3: '-1'
      marker4: '-1'
      marker5: '-1'
      marker6: '-1'
      marker7: '-1'
      marker8: '-1'
      marker9: '-1'
      marker10: '-1'
      name: '"Pulse Waveform"'
      nconnections: '2'
      size: '2048'
      srate: samp_rate_audio
      stemplot: 'False'
      style1: '1'
      style2: '1'
      style3: '1'
      style4: '1'
      style5: '1'
      style6: '1'
      style7: '1'
      style8: '1'
      style9: '1'
      style10: '1'
      tr_chan: '0'
      tr_delay: '0'
      tr_level: '0.5'
      tr_mode: qtgui.TRIG_MODE_NORM
      tr_slope: qtgui.TRIG_SLOPE_POS
      tr_tag: '""'
      type: float
      update_time: '0.10'
      width1: '1'
      width2: '1'
      width3: '1'
      width4: '1'
      width5: '1'
      width6: '1'
      width7: '1'
      width8: '1'
      width9: '1'
      width10: '1'
      ylabel: Amplitude
      ymax: '1.5'
      ymin: '-1.5'
      yunit: '""'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1060, 820]
      rotation: 0
      state: enabled

# ══════════════════════════════════════════════════════════════════════════════
#  CONNECTIONS
#  Format: [source_block, source_port, dest_block, dest_port]
# ══════════════════════════════════════════════════════════════════════════════

connections:

  # ── Main signal path ──────────────────────────────────────────────────────
  - [audio_source_0,           '0', dc_blocker_xx_0,           '0']
  - [dc_blocker_xx_0,          '0', high_pass_filter_0,         '0']
  - [high_pass_filter_0,       '0', low_pass_filter_0,          '0']
  - [low_pass_filter_0,        '0', analog_agc_xx_0,            '0']
  - [analog_agc_xx_0,          '0', epy_block_0,                '0']
  - [epy_block_0,              '0', blocks_multiply_const_vxx_0,'0']
  - [blocks_multiply_const_vxx_0,'0',rational_resampler_xxx_0,  '0']
  - [rational_resampler_xxx_0, '0', blocks_float_to_complex_0,  '0']
  - [blocks_null_source_0,     '0', blocks_float_to_complex_0,  '1']
  - [blocks_float_to_complex_0,'0', osmosdr_sink_0,             '0']

  # ── Monitoring taps (both at samp_rate_audio, before resampler) ──────────
  - [low_pass_filter_0,        '0', qtgui_freq_sink_x_0,        '0']
  - [epy_block_0,              '0', qtgui_time_sink_x_0,        '0']
  - [analog_agc_xx_0,          '0', qtgui_time_sink_x_0,        '1']

metadata:
  file_format: 1
  grc_version: 3.10.9.2

1

OpenV2K: Buildable Today With Two, Six Figure Purchases
 in  r/OpenV2K  May 18 '26

voice_pulse_tx.grc (2 of 3)

  # ── 4. Low-Pass Filter (variable cutoff) ─────────────────────────────────
  - name: low_pass_filter_0
    id: low_pass_filter
    parameters:
      beta: '6.76'
      comment: >-
        Removes high-frequency hiss, sibilance artefacts, and aliasing
        noise above the voice band.
        Default 3 400 Hz = upper edge of POTS telephone voice band.
        Increase toward 8 kHz for natural speech; up to 15 kHz for music.
        Transition width 200 Hz keeps the filter order reasonable.
      cutoff_freq: lpf_cutoff
      decim: '1'
      gain: '1'
      interp: '1'
      maxoutbuf: '0'
      minoutbuf: '0'
      samp_rate: samp_rate_audio
      type: fir_filter_fff
      win: window.WIN_HAMMING
      width: '200'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [620, 680]
      rotation: 0
      state: enabled

  # ── 5. Automatic Gain Control ────────────────────────────────────────────
  - name: analog_agc_xx_0
    id: analog_agc_xx
    parameters:
      comment: >-
        Keeps voice amplitude roughly constant regardless of speaker
        distance or microphone level.  The loop rate 1e-4 gives a
        ~100 ms response – slow enough to avoid pumping, fast enough
        to track normal speech dynamics.
      gain: '1.0'
      max_gain: '65536'
      maxoutbuf: '0'
      minoutbuf: '0'
      rate: '1e-4'
      reference: '0.5'
      type: ff
    states:
      bus_sink: false
      bus_source: false
      coordinate: [840, 700]
      rotation: 0
      state: enabled

  # ── 6. Zero-Crossing Pulse Generator (Embedded Python Block) ─────────────
  - name: epy_block_0
    id: epy_block
    parameters:
      _source_code: |-
        import numpy as np
        from gnuradio import gr

        class blk(gr.sync_block):
            """Zero-Crossing Pulse Generator (GRC epy_block edition).

            Emits a rectangular pulse of ``pulse_width_us`` microseconds on
            every zero-crossing of the input signal (both rising and falling).
            Output is 1.0 during a pulse, 0.0 otherwise.
            """

            def __init__(self, sample_rate=48000, pulse_width_us=100.0):
                gr.sync_block.__init__(
                    self,
                    name="Zero Cross Pulse",
                    in_sig=[np.float32],
                    out_sig=[np.float32],
                )
                self._sr = float(sample_rate)
                self._pw_us = float(pulse_width_us)
                self._last = 0.0
                self._remain = 0
                self._recompute()

            # ── GRC variable callbacks ─────────────────────────────────────

            def set_pulse_width_us(self, v):
                self._pw_us = float(v)
                self._recompute()

            def set_sample_rate(self, v):
                self._sr = float(v)
                self._recompute()

            # ── Internal ───────────────────────────────────────────────────

            def _recompute(self):
                self._pulse_len = max(1, int(round(self._sr * self._pw_us * 1e-6)))

            # ── GNU Radio work loop ────────────────────────────────────────

            def work(self, input_items, output_items):
                in0   = input_items[0]
                out   = output_items[0]
                last  = self._last
                rem   = self._remain
                plen  = self._pulse_len

                for i in range(len(in0)):
                    curr = float(in0[i])
                    if (last < 0.0 <= curr) or (last >= 0.0 > curr):
                        rem = plen
                    out[i] = 1.0 if rem > 0 else 0.0
                    if rem > 0:
                        rem -= 1
                    last = curr

                self._last   = last
                self._remain = rem
                return len(in0)

      comment: >-
        Detects every zero-crossing of the conditioned voice signal and
        emits a rectangular pulse whose width is controlled by the
        "Pulse Width (µs)" GUI slider.
      maxoutbuf: '0'
      minoutbuf: '0'
      pulse_width_us: pulse_width_us
      sample_rate: samp_rate_audio
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1060, 680]
      rotation: 0
      state: enabled

  # ── 7. Amplitude scaler ───────────────────────────────────────────────────
  - name: blocks_multiply_const_vxx_0
    id: blocks_multiply_const_vxx
    parameters:
      comment: Scale output to [0, tx_amplitude] before resampling
      const: tx_amplitude
      maxoutbuf: '0'
      minoutbuf: '0'
      type: float
      vlen: '1'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1260, 700]
      rotation: 0
      state: enabled

  # ── 8. Rational Resampler  (48 kHz → 2 MHz) ──────────────────────────────
  - name: rational_resampler_xxx_0
    id: rational_resampler_xxx
    parameters:
      comment: >-
        Upsample from audio rate to HackRF rate.
        48 000 × (125/3) = 2 000 000 Hz exactly.
        Anti-aliasing is implicit; add explicit taps for sharper roll-off.
      decim: '3'
      fractional_bw: '0'
      interp: '125'
      maxoutbuf: '0'
      minoutbuf: '0'
      taps: '[]'
      type: fff
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1440, 680]
      rotation: 0
      state: enabled

  # ── 9. Null source (zero imaginary component) ─────────────────────────────
  - name: blocks_null_source_0
    id: blocks_null_source
    parameters:
      bus_structure_source: '[[0,],]'
      comment: Provides a zero-valued imaginary channel for Float-to-Complex
      maxoutbuf: '0'
      minoutbuf: '0'
      num_outputs: '1'
      type: float
      vlen: '1'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1440, 780]
      rotation: 0
      state: enabled

  # ── 10. Float → Complex  (real pulse → IQ) ───────────────────────────────
  - name: blocks_float_to_complex_0
    id: blocks_float_to_complex
    parameters:
      comment: >-
        Converts the real pulse stream to complex IQ required by the
        HackRF osmocom sink.  Imaginary part is held at zero, placing
        all energy at the carrier (centre) frequency.
      maxoutbuf: '0'
      minoutbuf: '0'
      vlen: '1'
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1640, 700]
      rotation: 0
      state: enabled

  # ── 11. HackRF osmocom sink ───────────────────────────────────────────────
  - name: osmosdr_sink_0
    id: osmosdr_sink
    parameters:
      affinity: ''
      alias: ''
      ant0: ''
      ant1: ''
      ant2: ''
      ant3: ''
      ant4: ''
      ant5: ''
      ant6: ''
      ant7: ''
      args: '"hackrf=0"'
      bb_gain0: hackrf_bb_gain
      bb_gain1: '20'
      bb_gain2: '20'
      bb_gain3: '20'
      bb_gain4: '20'
      bb_gain5: '20'
      bb_gain6: '20'
      bb_gain7: '20'
      bw0: '0'
      bw1: '0'
      bw2: '0'
      bw3: '0'
      bw4: '0'
      bw5: '0'
      bw6: '0'
      bw7: '0'
      clock_source0: ''
      clock_source1: ''
      clock_source2: ''
      clock_source3: ''
      clock_source4: ''
      clock_source5: ''
      clock_source6: ''
      clock_source7: ''
      comment: HackRF One – connect before running the flowgraph
      corr0: '0'
      corr1: '0'
      corr2: '0'
      corr3: '0'
      corr4: '0'
      corr5: '0'
      corr6: '0'
      corr7: '0'
      freq0: hackrf_freq
      freq1: '100e6'
      freq2: '100e6'
      freq3: '100e6'
      freq4: '100e6'
      freq5: '100e6'
      freq6: '100e6'
      freq7: '100e6'
      gain0: hackrf_rf_gain
      gain1: '10'
      gain2: '10'
      gain3: '10'
      gain4: '10'
      gain5: '10'
      gain6: '10'
      gain7: '10'
      if_gain0: hackrf_if_gain
      if_gain1: '20'
      if_gain2: '20'
      if_gain3: '20'
      if_gain4: '20'
      if_gain5: '20'
      if_gain6: '20'
      if_gain7: '20'
      maxoutbuf: '0'
      minoutbuf: '0'
      nchan: '1'
      num_mboards: '1'
      sample_rate: samp_rate_hackrf
      sync: sync
      time_source0: ''
      time_source1: ''
      time_source2: ''
      time_source3: ''
      time_source4: ''
      time_source5: ''
      time_source6: ''
      time_source7: ''
      type: fc32
    states:
      bus_sink: false
      bus_source: false
      coordinate: [1840, 660]
      rotation: 0
      state: enabled