<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=Lua_extensions</id>
	<title>Lua extensions - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.simtx.net/index.php?action=history&amp;feed=atom&amp;title=Lua_extensions"/>
	<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=Lua_extensions&amp;action=history"/>
	<updated>2026-08-06T11:09:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.simtx.net/index.php?title=Lua_extensions&amp;diff=564&amp;oldid=prev</id>
		<title>Clanker: Add and update user documentation for Lua extensions and the catalog</title>
		<link rel="alternate" type="text/html" href="https://wiki.simtx.net/index.php?title=Lua_extensions&amp;diff=564&amp;oldid=prev"/>
		<updated>2026-08-06T09:12:22Z</updated>

		<summary type="html">&lt;p&gt;Add and update user documentation for Lua extensions and the catalog&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A &amp;#039;&amp;#039;&amp;#039;Lua extension&amp;#039;&amp;#039;&amp;#039; adds user-defined features to the SimTX Transmitter. An extension may provide modulation modes, audio add-ons, tools, themes, reusable libraries, or several of these features in one package. Extensions are stored as folders and can be created, edited, and reloaded without restarting the application.&lt;br /&gt;
&lt;br /&gt;
== Extension types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Purpose !! Where it appears&lt;br /&gt;
|-&lt;br /&gt;
| Modulation || Produces complex IQ or mono audio for a transmission. A mode may use ordinary audio, generate a signal, or consume an image, video, or data file. || &amp;#039;&amp;#039;&amp;#039;Modulation&amp;#039;&amp;#039;&amp;#039; list in the RF Signal section&lt;br /&gt;
|-&lt;br /&gt;
| Audio add-on || Processes mono audio before RF modulation. Examples include gain control, filtering, CTCSS, and identification tones. || &amp;#039;&amp;#039;&amp;#039;Add-ons&amp;#039;&amp;#039;&amp;#039; button in the footer&lt;br /&gt;
|-&lt;br /&gt;
| Tool or action || Reads or changes documented transmitter settings and may start or stop transmissions. || &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Theme || Changes the application colors and fonts. || &amp;#039;&amp;#039;&amp;#039;Theme&amp;#039;&amp;#039;&amp;#039; list in the footer&lt;br /&gt;
|-&lt;br /&gt;
| Library || Provides Lua modules to other installed extension packages. || Used by declared dependent packages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One package may register several items and may combine several types.&lt;br /&gt;
&lt;br /&gt;
== Managing installed extensions ==&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; button opens three tabs:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Installed&amp;#039;&amp;#039;&amp;#039; lists each package, its version, and the items it provides.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; lists user-invoked actions and provides a button for running the selected action.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problems&amp;#039;&amp;#039;&amp;#039; lists packages that could not be loaded and gives the reason.&lt;br /&gt;
&lt;br /&gt;
The same window provides &amp;#039;&amp;#039;&amp;#039;Create extension&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Edit package&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Open user folder&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Reload now&amp;#039;&amp;#039;&amp;#039;. Changes made in the built-in editor or in the extension folder take effect after reloading. The application also detects ordinary file changes and reloads extensions automatically.&lt;br /&gt;
&lt;br /&gt;
The first creation of the extension folder includes editable example packages. These demonstrate modulation, generated CW, image input, audio add-ons, actions, themes, multi-type packages, libraries, and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Using extension features ==&lt;br /&gt;
Extension modulation modes are selected in the normal &amp;#039;&amp;#039;&amp;#039;Modulation&amp;#039;&amp;#039;&amp;#039; list. Their controls and required media pickers appear below the standard transmission fields. Audio-output modes also provide an &amp;#039;&amp;#039;&amp;#039;RF modulation&amp;#039;&amp;#039;&amp;#039; selector. IQ-output modes bypass the built-in modulator.&lt;br /&gt;
&lt;br /&gt;
Audio add-ons are enabled and ordered through the &amp;#039;&amp;#039;&amp;#039;Add-ons&amp;#039;&amp;#039;&amp;#039; window. Enabled add-ons run from top to bottom. Their order, enabled state, and control values are retained between application runs. Add-ons require a mono audio source or an audio-producing Lua modulation.&lt;br /&gt;
&lt;br /&gt;
Themes are selected from the &amp;#039;&amp;#039;&amp;#039;Theme&amp;#039;&amp;#039;&amp;#039; list. Tools are run from the &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; tab of the &amp;#039;&amp;#039;&amp;#039;Extensions&amp;#039;&amp;#039;&amp;#039; window.&lt;br /&gt;
&lt;br /&gt;
== Obtaining extensions ==&lt;br /&gt;
The [[Extension catalog]] is the normal way to preview and install shared packages. Catalog extensions are checked before installation, placed in the user extension folder, and loaded immediately. Required library packages can be installed as part of the same operation.&lt;br /&gt;
&lt;br /&gt;
== Creating extensions ==&lt;br /&gt;
[[Creating Lua extensions]] describes the package structure and a minimal example. The public interface is divided among these references:&lt;br /&gt;
* [[Lua extension manifest]]&lt;br /&gt;
* [[Lua extension API]]&lt;br /&gt;
* [[Lua modulation API]]&lt;br /&gt;
* [[Lua audio add-on API]]&lt;br /&gt;
* [[Lua action API]]&lt;br /&gt;
* [[Lua theme API]]&lt;br /&gt;
&lt;br /&gt;
== Execution environment ==&lt;br /&gt;
Extensions run in a restricted Lua environment intended for computation. Standard Lua base, table, string, coroutine, bit32, and mathematical facilities are available. Direct file access, operating-system commands, network access, Java access, the debug library, &amp;lt;code&amp;gt;dofile&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;loadfile&amp;lt;/code&amp;gt; are not available. Files selected through declared inputs are exposed as read-only objects described in [[Lua modulation API]].&lt;br /&gt;
&lt;br /&gt;
Extension callbacks have execution limits. Signal processing should use the block operations supplied by the API where possible. An extension that exceeds a limit, returns an invalid value, or raises an error is stopped with a diagnostic.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua extensions]]&lt;/div&gt;</summary>
		<author><name>Clanker</name></author>
	</entry>
</feed>