What do you get the guitarist who's got everything? I rigged up an LED system for Paul cos he's having trouble seeing
the frets when the stage lights are RED!

Ok, so here's the trouble.

Playing on big stages at clubs with flashing blinking bleeping lights is making it tough for Paul to see his frets, so, being a fool for LED's ( They are teh shiznit) I decided to rig him up like the Borg.



That's a 5 LED caplight with a suction cup mounting that sits between the strings and fires down the frets. the light seeps under the slide and also reflects forward from the slide when Paul plays. Note in the first picture there's also an Ear Mounted light to add a little vision from the opposite direction.



Both the caplight and the earlight were stock items from jaycar Electronics, the mounting bracket is two suction cups purchase from Hardware house and cut and slotted together. I will probably replace these with something a little more sturdy.

We'll report back on how well the rig holds up to actual stage use!
6.24MBMemory Usage133msRequest Duration
Joomla! Version5.2.3
PHP Version8.2.26
Identityguest
Response200
Templatet3_bs3_blank
Database
Server
mysql
Version
8.0.36-0ubuntu0.22.04.1
Collation
utf8mb3_unicode_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
array:3 [ "catid" => "67" "id" => "160:paulseled-guitarlights" "view" => "article" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:59 [ "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "CONTENT_LEN...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744317948 "last" => 1744317948...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (107.11KB) (3.37ms)
  • afterInitialise (1.16MB) (25.05ms)
  • afterRoute (535.27KB) (2.47ms)
  • beforeRenderComponent com_content (55KB) (1.42ms)
  • Before Access::preloadComponents (all components) (106.08KB) (4.68ms)
  • After Access::preloadComponents (all components) (137.52KB) (1.92ms)
  • Before Access::preloadPermissions (com_content) (1.85KB) (20μs)
  • After Access::preloadPermissions (com_content) (2.09MB) (7.62ms)
  • Before Access::getAssetRules (id:211 name:com_content.article.160) (66.65KB) (129μs)
  • After Access::getAssetRules (id:211 name:com_content.article.160) (7.38KB) (129μs)
  • afterRenderComponent com_content (1012.31KB) (42.47ms)
  • afterDispatch (3.03KB) (253μs)
  • Before Access::preloadPermissions (com_dpcalendar) (254.04KB) (11.73ms)
  • After Access::preloadPermissions (com_dpcalendar) (6.8KB) (4.96ms)
  • Before Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (440B) (173μs)
  • After Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (6.03KB) (25μs)
  • afterRender (295.11KB) (26ms)
  • 1 x afterRenderComponent com_content (1012.31KB) (31.97%)
    42.47ms
    1 x afterRender (295.11KB) (19.58%)
    26.00ms
    1 x afterInitialise (1.16MB) (18.86%)
    25.05ms
    1 x Before Access::preloadPermissions (com_dpcalendar) (254.04KB) (8.83%)
    11.73ms
    1 x After Access::preloadPermissions (com_content) (2.09MB) (5.74%)
    7.62ms
    1 x After Access::preloadPermissions (com_dpcalendar) (6.8KB) (3.73%)
    4.96ms
    1 x Before Access::preloadComponents (all components) (106.08KB) (3.52%)
    4.68ms
    1 x afterLoad (107.11KB) (2.54%)
    3.37ms
    1 x afterRoute (535.27KB) (1.86%)
    2.47ms
    1 x After Access::preloadComponents (all components) (137.52KB) (1.45%)
    1.92ms
    1 x beforeRenderComponent com_content (55KB) (1.07%)
    1.42ms
    1 x afterDispatch (3.03KB) (0.19%)
    253μs
    1 x Before Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (440B) (0.13%)
    173μs
    1 x Before Access::getAssetRules (id:211 name:com_content.article.160) (66.65KB) (0.1%)
    129μs
    1 x After Access::getAssetRules (id:211 name:com_content.article.160) (7.38KB) (0.1%)
    129μs
    1 x After Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (6.03KB) (0.02%)
    25μs
    1 x Before Access::preloadPermissions (com_content) (1.85KB) (0.01%)
    20μs
24 statements were executed, 6 of which were duplicates, 18 unique32.1ms408.53KB
  • SELECT @@SESSION.sql_mode;391μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `vm53n_session` WHERE `session_id` = ?454μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `vm53n_session` WHERE `session_id` = :session_id LIMIT 1221μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `vm53n_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)2.06ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `vm53n_viewlevels`472μs992B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `vm53n_usergroups` AS `a` LEFT JOIN `vm53n_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest665μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44,:preparedArray45,:preparedArray46,:preparedArray47,:preparedArray48)924μs7.81KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 03.05ms341.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `vm53n_content`1.75ms2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `vm53n_content` SET `hits` = (`hits` + 1) WHERE `id` = '160'1.52ms48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)947μs6.12KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.19ms3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `vm53n_contentitem_tag_map` AS `m` INNER JOIN `vm53n_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3)779μs4KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.3ms3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM vm53n_fields AS a LEFT JOIN `vm53n_languages` AS l ON l.lang_code = a.language LEFT JOIN vm53n_users AS uc ON uc.id=a.checked_out LEFT JOIN vm53n_viewlevels AS ag ON ag.id = a.access LEFT JOIN vm53n_users AS ua ON ua.id = a.created_user_id LEFT JOIN vm53n_fields_groups AS g ON g.id = a.group_id LEFT JOIN `vm53n_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5,:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7,:preparedArray8,:preparedArray9)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.12ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`728μs3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.52ms5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 04.38ms1.53KBParams/libraries/src/Access/Access.php:301Copy
  • SELECT * FROM `vm53n_schemaorg` WHERE `itemId` = :itemId AND `context` = :context715μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)1.68ms6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)1.2ms6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `vm53n_scheduler_tasks` AS `a` WHERE `a`.`state` = 1871μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • SELECT `session_id` FROM `vm53n_session` WHERE `session_id` = ?1.79ms1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `vm53n_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?2.38ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy