MCPcopy Index your code
hub / github.com/billthefarmer/sig-gen

github.com/billthefarmer/sig-gen @v1.37

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.37 ↗ · + Follow
93 symbols 198 edges 10 files 0 documented · 0% updated 3mo agov1.37 · 2026-03-25★ 13710 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Logo Signal Generator .github/workflows/main.yml Release

Get it on F-Droid

A signal generator for Android. The app can be downloaded from F-Droid and here.

  • Frequency range 0.1Hz - 25KHz
  • Level range 0dB - -80dB
  • Set exact frequency
  • Frequency bookmarks
  • Square wave duty cycle
  • Shortcut
  • External control

Using

The frequency knob responds to finger twirling. The duty cycle, fine frequency and level sliders allow for adjustments of square wave duty cycle, fine frequency and output level. The frequency knob is also adjustable using the left and right arrow buttons above. The two bookmark buttons below the frequency knob show if there are bookmarks, and will go to the next lower or higher bookmark if it exists.

The toolbar items are, from left to right: * Exact - Prompt for an exact frequency * Bookmark - Save the current frequency as a bookmark * Sleep - Prevent the device from sleeping

To remove a bookmark, go to it and touch the toolbar bookmark button.

Shortcut

A shortcut may be created to set the parameters shown below. Empty frequency, duty cycle and level values and unchecked waveform values will not be included. The mute value will always be included. The name of the shortcut will be composed from the set values if the name field is empty.

External Control

The app may be started, the frequency, level, duty cycle, waveform and mute set externally by sending a suitable Intent from an automation app. The app package/activity is org.billthefarmer.siggen/org.billthefarmer.siggen.Main. The parameters may be:

Parameter Action/Category/Extra Type Value
Action android.intent.action.MAIN
android.intent.action.DEFAULT
Category android.intent.category.LAUNCHER
android.intent.category.DEFAULT
Extras org.billthefarmer.siggen.SET_FREQ int, float 0.1 – 25000
org.billthefarmer.siggen.SET_LEVEL int, float -80 – 0
org.billthefarmer.siggen.SET_DUTY int, float 0 – 100
org.billthefarmer.siggen.SET_WAVE int 0 = Sine
1 = Square
2 = Sawtooth
org.billthefarmer.siggen.SET_MUTE boolean true, false

Any combination of extras or none may be sent. Subsequent intents sent will update the values from the included extras.

This may be tested using the Android Debug Bridge.

$ adb shell am start --ef org.billthefarmer.siggen.SET_FREQ 257.3 --ef org.billthefarmer.siggen.SET_LEVEL -25.2 org.billthefarmer.siggen/.Main
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.billthefarmer.siggen/.Main (has extras) }
$ adb shell am start --ez org.billthefarmer.siggen.SET_MUTE true org.billthefarmer.siggen/.Main
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.billthefarmer.siggen/.Main (has extras) }
Warning: Activity not started, its current task has been brought to the front

Extension points exported contracts — how you extend this code

OnKnobChangeListener (Interface)
(no doc) [1 implementers]
src/main/java/org/billthefarmer/siggen/Knob.java

Core symbols most depended-on inside this repo

onClick
called by 7
src/main/java/org/billthefarmer/siggen/Main.java
setFrequency
called by 6
src/main/java/org/billthefarmer/siggen/Main.java
setValue
called by 5
src/main/java/org/billthefarmer/siggen/Knob.java
onKnobChange
called by 4
src/main/java/org/billthefarmer/siggen/Knob.java
setLevel
called by 3
src/main/java/org/billthefarmer/siggen/Main.java
checkBookmarks
called by 3
src/main/java/org/billthefarmer/siggen/Main.java
start
called by 3
src/main/java/org/billthefarmer/siggen/Main.java
setState
called by 2
src/main/java/org/billthefarmer/siggen/Main.java

Shape

Method 81
Class 11
Interface 1

Languages

Java100%

Modules by API surface

src/main/java/org/billthefarmer/siggen/Main.java39 symbols
src/main/java/org/billthefarmer/siggen/Knob.java20 symbols
src/main/java/org/billthefarmer/siggen/Scale.java6 symbols
src/main/java/org/billthefarmer/siggen/Display.java6 symbols
src/main/java/org/billthefarmer/siggen/SiggenView.java5 symbols
src/main/java/org/billthefarmer/siggen/SettingsFragment.java5 symbols
src/main/java/org/billthefarmer/siggen/HelpActivity.java4 symbols
src/main/java/org/billthefarmer/siggen/SettingsActivity.java3 symbols
src/main/java/org/billthefarmer/siggen/AboutPreference.java3 symbols
src/main/java/org/billthefarmer/siggen/Shortcut.java2 symbols

For agents

$ claude mcp add sig-gen \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page