Frequently asked questions
Why does Lightning use separate runtime libraries (rtl70.bpl, vcl70.bpl, vclsmp70.bpl, vclx70.bpl)?
Lightning comes with a DLL for each module. With built-in runtime libraries, each DLL's size would be about 300 kB, adding up to many megabytes. With separate runtime libraries, the size of each DLL is only about 20 kB, saving much disk space.
Where does Lightning store its settings?
Lightning stores its settings in the registry key HKEY_CURRENT_USER\Software\Lightning.
Why does the program use so much CPU power?
Using the default settings, Lightning evaluates every path starting from each input module once after every 10 milliseconds. Because each signal consists of a full audio spectrum, this takes a considerable amount of processing power, growing every time the signal is split. The 10 milliseconds interval could be increased so that the program uses less CPU power, but then fades will become less accurate and time sensitive modules, like Keep, Extend and Require will suffer. Still intervals like 20 or 30 milliseconds give nice results while they greatly reduce CPU usage. On the contrary, if you have a really fast CPU (in the quad-core range), the interval could be reduced up to 1 milliseconds for smoother results.
Why do the inParallelPort, outParallelPort and outParallelPortMux modules show "Please install SmallPort driver"?
The following module caption will appear if the SmallPort driver could not be found:
Because Windows NT does not permit direct access to hardware, the SmallPort driver (smport.sys) is required in order to access parallel ports. The SmallPort driver can be installed using the Tools->Configuration dialog. Clicking any of the buttons will require elevation to administrator rights. The recommended choice is "Install (auto start)". Choosing "Install (manual start)" will disable non-administrator users from utilizing the driver. Repairing or Removing the SmallPort driver sometimes requires a system reboot.
What are the inAvsBeat module and BDetect application for?
Lightning allows for extremely customizable beat detection using modules such as StereoAudio, Select and Comparator. Sometimes this complexity is not wanted however and basic beat detection is sufficient. In such cases the BDetect tool can be handy. It will attempt to autodetect audio beats without any configuration necessary. Detection can be optimized by slightly adjusting parameters, but making big changes to parameters is not recommended. At each beat the tool will send a window message to the inAvsBeat module. The inAvsBeat module will output a pulse every time a window message is received. If there's no external source, the inAvsBeat module will never output pulses.
What are the inDMX module, outDMX module and DMXLink application for?
Rather than implementing the details of each of the hundreds available different DMX interfaces in Lightning itself, this job is left to a separate tool: DMXLink. This way Lightning can talk to the DMX interface without having to worry about implementation details. In this sense the DMXLink tool is a driver.
Lightning's dmx_out module communicates with DMXLink using window messages to set DMX channel values. DMXLink communicates with the actual hardware using proprietary protocols. An advantage of the DMXLink program being separate from Lightning is that multiple running instances of Lightning can output values to or gather values from the same DMX interface. In the future, applications other than Lightning could use DMXLink too, for example a DMX DLOP for DiscoLitez could be made.
Currently DMXLink only supports the Elektor LPT-DMX interface. In the future support will be added for additional DMX interfaces, making the tool much more useful. DMXLink will be improved with support for multiple DMX interfaces. It manages several "virtual" DMX universes. Various interfaces (DMX, MIDI, parallel, serial, ethernet) could be laid out in the virtual universes. This is the same principle as DMX fixtures that are laid out in a DMX universe using their addresses.
In the ideal world all DMX software could then use the DMXLink program, so that all programs would be compatible with eachother and with each interface. This is like porting the DMX4Linux idea to Windows.
What is LUA?
LUA is a scripting language. It can be used to create simple modules for Lightning. Scripts that comply to the Lightning format will be autodetected if placed in the same folder as Lightning. LUA modules will look and feel like normal Lightning modules, but consume more CPU power. The input to the LUA script will automatically be converted from a spectrum (1024 values in the range 0..511,9) to an average value (1 value in the range 0..511,9). The output from a LUA script module will be converted back from a value to a spectrum. Using values instead of spectrums reduces the CPU time used by LUA modules. For example scripts, see the *.lua files in the Lightning folder.
Back to the top