Los osciladores de doble T pueden imitar perfectamente los instrumentos de percusión. Estos circuitos se utilizan generalmente en el equipo que genera los sonidos del plato, del tambor, bongo y otros instrumentos y son fáciles de montar. En este artículo, describimos el montaje de un generador que puede servir como base para un generador de ritmo o incluso una batería electrónica.

Los generadores de ritmos comerciales se basan en microcontroladores y en varios circuitos integrados dedicados que producen las formas de onda de los sonidos de los instrumentos imitados y los ritmos más comunes. Sin embargo, para los lectores que les gusta experimentar con sonidos, o quieren crear algo diferente, el montaje de un circuito que utiliza componentes discretos comunes puede conducir a resultados interesantes.

Entonces describimos un proyecto simple de un generador del ritmo que utiliza los circuitos doble T con los transistores conectados con la salida de un circuito secuenciador integrado CMOS común. Como la forma en que conectamos cada oscilador a las salidas del secuenciador tendremos un orden de disparo diferente, generando las combinaciones que dan los ritmos musicales.

La programación es externa y se puede hacer por jumpers, llaves o incluso la conexión de la placa programada en un slot, como se muestra en la figura 1.

 

Figura 1 – Diagrama del bloque del aparato
Figura 1 – Diagrama del bloque del aparato | Clique na imagem para ampliar |

 

 

Los osciladores que describimos generan sonidos de muy baja frecuencia que corresponden a un bombo o bombo o sordo, frecuencia media que imita el sonido de los bloques de madera, o un tambor y frecuencias más altas que imitan plato o pandereta.

Por supuesto, sobre la base de las tablas de frecuencias de los instrumentos musicales (vea en el sitio web) podemos crear sonidos de muchos otros instrumentos. También podemos ampliar el número de pulsos en la secuencia para que tengamos efectos mucho más complejos.

Otra posibilidad para los lectores más avanzados es generar la secuencia de pulso por un microcontrolador. PICs, MSP430 o Arduino pueden ser utilizados se accionando los generadores a través de sus salidas conectadas con un decodificador apropiado.

El circuito no incorpora un amplificador, recomendando una potencia superior a 5 W y con un altavoz grande y pesado para una mayor fidelidad de los sonidos graves. En un conjunto musical se puede utilizar un mezclador para combinar los sonidos de las distintas fuentes, como se muestra en la figura 2.

 

 

   Figura 2 – Usando de un mezclador.
Figura 2 – Usando de un mezclador. | Clique na imagem para ampliar |

 

 

 

 

Cómo funciona

En la figura 3 tenemos el diagrama de bloques del generador.

 

   Figura 3 – Diagrama de bloque del generador
Figura 3 – Diagrama de bloque del generador | Clique na imagem para ampliar |

 

 

El primer bloque consiste en un oscilador de baja frecuencia con 555 en la configuración astable. Este oscilador ajustará las frecuencias de generación de ritmo entre 0,2 y 2 Hz o 5 pulsaciones por segundo a 1 batida cada dos segundos. Un potenciómetro ajusta este ritmo.

En la salida de este oscilador tenemos un LED que monitorea las batidas. El 555 excita el segundo bloque consistente en un contador de hasta 10 con el circuito integrado 4017. Este integrado tiene 10 salidas abiertas para la programación.

En secuencia, en cada pulso del 555, en las salidas van al alto nivel cuando la tensión sube a aproximadamente 6 V. La última etapa del aparato consta de 3 osciladores de doble T con transistores NPN. El nombre doble T proviene de la configuración de retroalimentación que determina la frecuencia de las oscilaciones, como se muestra en la figura 4.

 

Figura 4 – La doble T
Figura 4 – La doble T | Clique na imagem para ampliar |

 

 

La frecuencia de la señal generada es dada por la fórmula de la figura precedente. Una característica interesante de este oscilador es que cuando la retroalimentación se hace insuficiente para mantener las oscilaciones, se convierten amortecidas, o sea, el circuito entra en oscilación cuando está emocionado, pero las oscilaciones están disminuyendo en intensidad hasta desaparecer.

Tales oscilaciones caracterizan precisamente los sonidos de los instrumentos de percusión, donde un ritmo excita y las vibraciones están disminuyendo en intensidad hasta que desaparece, como se muestra en la figura 5.

 

 

Figura 5 – Oscilaciones amortecidas
Figura 5 – Oscilaciones amortecidas | Clique na imagem para ampliar |

 

 

Cuando la amortiguación es rápida, tenemos un ritmo "seco" como bloques de madera o incluso un tambor amortiguado (con la mano). Cuando la amortiguación es larga, el sonido se extiende y se vuelve metálico, como el que ocurre en un triángulo o copa de vidrio o tambor no amortiguado.

La configuración de la doble T es hecho por un trimpot que actúa en una pista muy amplia de efectos. La frecuencia del oscilador nos da el instrumento imitado, de acuerdo con la siguiente tabla:

 

Otros valores pueden ser experimentados, creando así nuevos sonidos.
Otros valores pueden ser experimentados, creando así nuevos sonidos. | Clique na imagem para ampliar |

 

 

Las salidas de los tres osciladores se unen, dando como resultado una única salida al amplificador externo. El circuito se alimenta con tensiones de 6 a 9 V obtenidas de pilas o batería.

El consumo del aparato es relativamente bajo, lo que garantiza una buena durabilidad para las pilas o la batería. La excitación de los osciladores se hace conectando cada entrada, vía los diodos, a la salida correspondiente de la programación 4017.

Por ejemplo, podemos hacer la unidad en una secuencia simple: oscilador 1 y 2, corto alcance, oscilador 3, escala grande, y luego oscilador 1 y 3, con las interconexiones de la tabla:

 


 

 

 

Vea que el punto 7 hace que el ciclo se reinicie inmediatamente. Esto se logra conectando este pino al Reset del 4017. Para un ciclo de 10 posiciones, donde después del punto 6 tenemos un intervalo largo que finaliza con los 10 pulsos de la 555, simplemente deje la llave S2 en la posición 10.

Usando en las salidas y entradas banana u otras tomas, la programación se puede hacer por los alambres con los enchufes, según lo sugerido en la figura 6.

 

   Figura 6 – Modo de programación con enchufes
Figura 6 – Modo de programación con enchufes | Clique na imagem para ampliar |

 

 

Se pueden añadir más diodos en las entradas a más posiciones de programación.

 

 

 

Montaje

 

En la figura 7 tenemos el diagrama completo del generador.

 

 

   Figura 7 – Diagrama completo
Figura 7 – Diagrama completo | Clique na imagem para ampliar |

 

 

En la figura 8 damos una sugerencia de placa de circuito impreso para montar el generador.

 

  Figura 8 –Placa de circuito impreso para el montaje
Figura 8 –Placa de circuito impreso para el montaje | Clique na imagem para ampliar |

 

 

El montaje no es crítico, requiriendo solamente la atención al blindaje del cable de salida y de la polaridad de los componentes.

Los potenciómetros son lineales y P1 puede tener S1 conjugado. Para salidas se pueden utilizar jaques banana o RCA o incluso una barra de terminales, según la función, como se muestra en la figura 9.

 

Figura 9 – Sugerencia de caja
Figura 9 – Sugerencia de caja | Clique na imagem para ampliar |

 

 

 

Prueba y Uso

 

Conecte la salida del generador a la entrada de un amplificador.

Accione S1 y pase la llave S2 a cualquier posición.

Conecte la salida 1 a la entrada A, la salida 5 a la entrada B, y la salida 9 a la entrada C.

Ajustando el LED para parpadear a una velocidad de 1 o 2 veces por segundo, ya tendremos batidas o las oscilaciones reproducidas en el amplificador.

Haga la configuración de cada uno de los potenciómetros de los osciladores para obtener los sonidos deseados. La operación probada sólo está usando el aparato programando sus sonidos.

Tenga en cuenta que no debe conectar la misma entrada a más de una salida.

 

 

Lista de Material

 

CI - 1 – 555 – circuito integrado

CI - 2 – 4017 – circuito integrado

Q1, Q2, Q3 – BC548 – transistores NPN de uso general

D1 a D9 – 1N14148 – diodos de uso general

S1 – Interruptor simple

S2 – Llave de 1 polo x 10 posiciones

B1 – 6 o 9 V – pilas o batería

P1 a P4 – 100 K ohms – potenciómetros lineales

R1 – 2k2 x 1/8 W – resistor – rojo, rojo, rojo

R2 – 4k7 x 1/8 W – resistor – amarillo, violeta, rojo

R3 – 1K x 1/8 W – resistor – marrón, negro, rojo

R4, R5, R9, R10, R14, R15 – 100 k ohms x 1/8 W – resistores – marrón, negro, amarillo

R6, R11, R16 – 150 k x 1/8 W – resistores – marrón, verde, amarillo

R7, R12, R17 – 10 k ohms x 1/8 W – resistores – marrón, negro, naranja

R8, R13, R18 – 5k6 x 1/8 W - resistores – verde, azul, rojo

C1 – 10 uF – capacitor electrolítico

C2, C3 – 560 pF – capacitores cerámicos

C4 – 1 nF - capacitor de cerámica o de poliéster

C5, C9, C10, C11, C13 – 22 nF – capacitores de cerámica o de poliéster

C6, C7 – 2n2 – capacitores de cerámica o de poliéster

C8 – 4n7 – capacitor de cerámica o de poliéster

C12 – 47 nF – capacitor de cerámica o de poliéster

C14 – 100 uF – capacitor electrolítico

Varios:

Placa de circuito impreso, caja para montaje, enchufes y pinos, conector de batería o soporte de pilas, alambres, soldadura, etc.

 

 

18.957MBMemory Usage42.46msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.16
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744585831 "last" => 1744585831...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.73KB) (796μs)
  • afterInitialise (1.14MB) (4.75ms)
  • afterRoute (179.16KB) (1.12ms)
  • beforeRenderComponent com_content (100.65KB) (513μs)
  • Before Access::preloadComponents (all components) (33.45KB) (290μs)
  • After Access::preloadComponents (all components) (107.06KB) (456μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (9μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (19.46ms)
  • Before Access::getAssetRules (id:27422 name:com_content.article.31055) (514.65KB) (709μs)
  • After Access::getAssetRules (id:27422 name:com_content.article.31055) (7.38KB) (72μs)
  • afterRenderComponent com_content (416.59KB) (6.77ms)
  • afterDispatch (2.25KB) (40μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (1.52ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (401μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (90μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (1.15ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (582μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.14KB) (72μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.14KB) (186μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (45μs)
  • afterRender (273.73KB) (3.31ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (45.84%)
    19.46ms
    1 x afterRenderComponent com_content (416.59KB) (15.94%)
    6.77ms
    1 x afterInitialise (1.14MB) (11.18%)
    4.75ms
    1 x afterRender (273.73KB) (7.8%)
    3.31ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (3.59%)
    1.52ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.98KB) (2.7%)
    1.15ms
    1 x afterRoute (179.16KB) (2.64%)
    1.12ms
    1 x afterLoad (85.73KB) (1.87%)
    796μs
    1 x Before Access::getAssetRules (id:27422 name:com_content.article.31055) (514.65KB) (1.67%)
    709μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (1.37%)
    582μs
    1 x beforeRenderComponent com_content (100.65KB) (1.21%)
    513μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.07%)
    456μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.94%)
    401μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.68%)
    290μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.14KB) (0.44%)
    186μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.21%)
    90μs
    1 x After Access::getAssetRules (id:27422 name:com_content.article.31055) (7.38KB) (0.17%)
    72μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.14KB) (0.17%)
    72μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.11%)
    45μs
    1 x afterDispatch (2.25KB) (0.09%)
    40μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    9μs
21 statements were executed, 5 of which were duplicates, 16 unique10.99ms1.58MB
  • SELECT @@SESSION.sql_mode;34μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 170μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)197μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`48μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest73μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • 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 `incbmx_categories` AS `s` INNER JOIN `incbmx_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`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`241μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_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)307μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 07.6ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`369μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '31055'212μs48B/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 `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_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)173μs22.13KBParams/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 `incbmx_categories` AS `s` INNER JOIN `incbmx_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`184μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_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)247μ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 `incbmx_categories` AS `s` INNER JOIN `incbmx_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`163μs3.92KBParams/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 incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_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)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) 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 ASC376μs4.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 `incbmx_categories` AS `s` INNER JOIN `incbmx_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) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`165μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1169μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)78μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context57μ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 `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_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)156μs22.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 `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 173μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy