Systems and methods for digital signal processing
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SEMITRIX TECHNOLOGY CO LTD
- Filing Date
- 2024-12-12
- Publication Date
- 2026-05-29
AI Technical Summary
Traditional digital signal processing (DSP) design software is cumbersome and unintuitive to operate. Users need to manually connect modules and find it difficult to manage stereo and multi-channel modules, resulting in low design efficiency and frequent errors.
A method for automatically aligning and connecting DSP modules is provided, which allows modules to be automatically aligned in the mesh and automatically shifted to make room when a third module is inserted. It supports bypassing missing nodes and modifying module attributes, thereby realizing the automated layout and connection of the module mesh.
It simplifies the DSP design process, improves design efficiency, reduces errors, provides an intuitive user interface and automated module management, and adapts to various signal processing needs.
Smart Images

Figure CN122122569A_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit of U.S. Application No. 18 / 393,042, filed on December 21, 2023, the disclosure of which is incorporated herein by reference in its entirety. Background Technology
[0003] Traditionally, systems, methodologies, and software used to design and implement digital signal processing (DSP) architectures require highly skilled and knowledgeable users. For example, traditional DSP design software and methodologies require users to manually connect the inputs and outputs of modules using virtual, hand-drawn wires. This process is slow, tedious, and requires skilled users to spend significant time maintaining and rearranging wires on the screen. Furthermore, traditional software only allows users to add a single module to their DSP design at a time, and copying / pasting functionality still requires additional work to correctly arrange wires and module connections. Additionally, stereo and multi-channel modules present additional challenges, as repetitive setups and wiring paths must be maintained. Moreover, even in operational mode, traditional DSP software often makes testing DSP systems difficult due to a lack of tools or inaccessibility. This results in traditional DSP software being unintuitive, cumbersome, disorganized, and error-prone.
[0004] Therefore, there is a need for intuitive, fast, automated, and organized methods and software for DSP design. Summary of the Invention
[0005] This summary is provided to introduce, in a simplified form, some concepts that will be further described in the following detailed description. This summary is not intended to identify key features of the subject matter protected by the claims, nor is it intended to help determine the scope of the subject matter protected by the claims.
[0006] In one aspect, this document discloses a method for creating a digital signal processing (DSP) module grid on a computer user interface; the method includes: inserting a first module and a second module into the DSP module grid; automatically aligning the first module and the second module; automatically connecting at least a first node of the first module to at least a second node of the second module using a first connection; and inserting a third module between the first module and the second module, wherein when the third module is inserted, the first module and the second module are automatically shifted to make room for the third module, and the third module is automatically aligned with the first module and the second module.
[0007] In another aspect, this document discloses a method for creating a digital signal processing (DSP) module grid on a computer user interface, wherein the DSP module grid comprises a plurality of cells, and wherein the plurality of cells form a plurality of rows and a plurality of columns. In some embodiments, the method includes: inserting a plurality of modules on the plurality of cells, each of the plurality of modules having one or more nodes; for modules inserted in the same row, aligning the modules within the same row of the plurality of rows; connecting one or more nodes of a given module of the plurality of modules to one or more nodes of a first adjacent module of the plurality of modules to form one or more connections; and if a given module of the plurality of modules includes a missing node (i.e., a missing node), functionally bypassing the missing node such that the missing node is not connected to a node of the first adjacent module in the same row of the plurality of rows, wherein the first adjacent module maintains one or more connections with a second adjacent module. Attached Figure Description
[0008] The foregoing aspects and accompanying advantages of the invention will become more readily explained, as these aspects and advantages will become better understood when taken in conjunction with the accompanying drawings and the following detailed description, wherein:
[0009] Figure 1A This is an example digital signal processing (DSP) grid having a first module and a second module according to the present technology;
[0010] Figure 1B This is an example digital signal processing (DSP) grid having a first module, a second module, and a third module according to the present technology;
[0011] Figure 1C This is an example digital signal processing (DSP) grid having a first module, a second module, and a third module according to the present technology;
[0012] Figure 1D This is an example digital signal processing (DSP) grid having a first module and a second module according to the present technology;
[0013] Figure 2A This is an example module based on this technology;
[0014] Figure 2B This is an example digital signal processing (DSP) grid having a first module, a second module, and a third module according to the present technology;
[0015] Figures 3A to 3D This is an example process box using a digital signal processing (DSP) grid according to this technology;
[0016] Figure 4 A first module, a second module, and a third module having multiple connections according to the present technology are shown;
[0017] Figure 5A It is a first module, a second module, and a third module having multiple connections according to this technology;
[0018] Figure 5B An example instrument according to this technology is shown;
[0019] Figure 5C Several modules according to the present technology are shown, each module having a signal generator;
[0020] Figure 6 This is an example method for creating a digital signal processing (DSP) module mesh on a computer user interface, based on the present technology;
[0021] Figure 7 This is an example method for creating a digital signal processing (DSP) module mesh on a computer user interface, based on the present technology;
[0022] Figure 8 This is an example method for creating a digital signal processing (DSP) module mesh on a computer user interface, based on the present technology;
[0023] Figure 9 This is an example method for creating a digital signal processing (DSP) module mesh on a computer user interface according to the present technology; and
[0024] Figure 10 This is an example method for creating a digital signal processing (DSP) module mesh on a computer user interface, based on the present technology. Detailed Implementation
[0025] While exemplary embodiments have been exemplified and described, it should be understood that various changes may be made therein without departing from the spirit and scope of the invention.
[0026] In some embodiments, a digital signal processing (DSP) module grid is described herein. In some embodiments, the DSP module grid includes multiple modules. In some embodiments, each of the multiple modules represents a piece of hardware or a portion of hardware, such as audio hardware or manufacturing hardware. In some embodiments, the DSP module grid is configured to automatically align and automatically connect to each other. In some embodiments, each of the multiple modules is configured to align within the same row or column of the DSP module grid. In some embodiments, each of the multiple modules is configured to shift when a module is added to the DSP module grid. For example, when two modules are added to the DSP module grid, these two modules are configured to shift to accommodate a third module inserted between the two modules. In some embodiments, the DSP module grid is further configured to automatically align and connect the third module to the two modules.
[0027] In some implementations, one or more modules among the multiple modules include missing nodes. In such implementations, the DSP module mesh can be further configured to bypass blank nodes while maintaining connectivity between other modules among the multiple modules. In some implementations, each module among the multiple modules includes one or more attributes. In some implementations, one or more attributes can be modified to create new connections, new types of modules, etc.
[0028] In some implementations, the DSP module grid can be further configured to have a lockout mode. In this lockout mode, multiple modules are prevented from being moved, connected, or inserted. In some implementations, in lockout mode, signal generators and / or signal meters can be added to the DSP module grid to monitor signal strength, clipping, node functionality, etc. In some implementations, the signal generator is a tone generator.
[0029] As defined herein, the term "grid" is understood to mean a two-dimensional array of rows and columns of integer size. Therefore, the term "cell" is understood to mean a single intersection of rows and columns in the grid. As defined herein, the term "module" is understood to mean a signal processing component having one or more inputs and / or one or more outputs (collectively referred to herein as "nodes") that may occupy any number of cells in the grid, including a single cell. A module may have any number of output nodes or input nodes. In some implementations, the number of nodes (inputs and / or outputs) is determined by the type of signal processing component employed by the module, such as an equalizer, mixer, etc. As described herein, a "missing node" is a node that is missing. A missing node is understood to be a node that is missing (a lost node) and is not a structural component of the module. Rather, a missing node indicates that the module lacks such a node where an input node or output node (or both) should normally be present.
[0030] Furthermore, as defined herein, "channel" is understood to mean a single atom-like quantity of media that cannot be further divided (such as audio, video, control, etc.). As used herein, "signal" is understood to mean one or more channels of related media, considered as a single component for connection, analysis, and documentation purposes. As used herein, "mult" is understood to mean the replication of an output signal for naming or connection purposes. As described herein, a signal path is understood to mean all signal processing within a given grid.
[0031] As used herein, the term "insertion" is understood to mean placing a new module into one or more units by shifting the module to accommodate the new module, thereby preserving the previous properties and connections of one or more already placed modules. "Replacement" of a module is understood to mean placing a new module into one or more units, removing any properties or connections of one or more already placed modules.
[0032] Figure 1A This is an example digital signal processing (DSP) module grid 100 according to the present technology, having a first module 110A and a second module 110B. In some embodiments, the DSP module grid 100 includes a plurality of cells 105A, 105B, 105C...105N, which are arranged in a plurality of rows R1...RN and a plurality of columns C1, C2, C3...CN. In the illustrated embodiment, the DSP module grid 100 includes the first module 110A, the second module 110B, and a connection 120 between the first module 110A and the second module 110B.
[0033] In some implementations, the DSP module grid 100 is displayed on a computer user interface (e.g., a computer monitor). Although 15 units 105A, 105B, 105C...105N are illustrated, it should be understood that any number of units may be included in multiple units 105A, 105B, 105C...105N.
[0034] In some implementations, the first module 110A and the second module 110B are collectively referred to as multiple modules 110. In some implementations, the multiple modules 110 may include any number of modules, including a single module, two modules, three modules, etc. In some implementations, each module 110A, 110B represents a component (or signal processing component) of a DSP design. In some implementations, each module 110A, 110B is a type of audio component. In such implementations, the type of component includes, for example, audio inputs, equalizers (such as parametric equalizers), gain converters, matrices, mixers, audio outputs, etc. In some implementations, the type of each module 110A, 110B determines the number and type of specific attributes of modules 110A, 110B, as described herein. Figure 2A This is described in further detail below. For example, in some embodiments, the module type determines how many nodes (input nodes and / or output nodes) are incorporated into modules 110A, 110B. In some embodiments, each module represents one or more pieces of hardware in a DSP design. In some embodiments, two or more modules may be contained in a single piece of hardware in a DSP design. In this way, modules 110A, 110B can be theoretical components of a theoretical DSP design or actual hardware in a real-world DSP setup. It should be understood that in some embodiments, the DSP design is entirely conceptual and does not represent one or more pieces of hardware. Furthermore, in some embodiments, the DSP design is configured to be implemented via software, such as within a single computer.
[0035] In some implementations, each module 110A, 110B includes one or more nodes 115A, 115B. In some implementations, each module 110A, 110B includes one or more node types. As described herein, nodes 115A, 115B can be inputs, outputs, or input / outputs (e.g., ...). Figure 1B (As shown). Furthermore, the node type includes either the input type or the output type, such as... Figure 2A This is explained in more detail. For example, such as Figure 1A As shown, the first module 110A includes an output node 115A. Furthermore, the second module 110B includes an input node 115B. It should be understood that each node 115A, 115B represents an input or output terminal. In operation, signals may pass through some or all of the nodes 115A, 115B. It should also be understood that, as described herein, a node is not limited to a single cell of the DSP mesh module 100 and may be located anywhere within modules 110A, 110B, and 110C.
[0036] In some implementations, each module 110A, 110B fills one cell 105A, 105B, 105C...105N of the DSP module mesh 100. However, in other implementations, the number of nodes 115 or the number of node types can determine how many cells from multiple cells 105A, 105B, 105C...105N are filled in each module 110A, 110B, such as... Figure 2B As shown and explained.
[0037] In operation, when the first module 110A and the second module 110B are inserted into the DSP module grid 100, these modules are automatically aligned in rows R and / or columns C. Although the first module 110A and the second module 110B are shown as being in the middle row of the DSP module grid 100, the first module 110A and the second module 110B can be in any row R or column C. In some embodiments, inserting the first module 110A and the second module 110B includes dragging each module 110A, 110B into one or more cells 105A, 105B, 105C...105N of the DSP grid 100. In some embodiments, when the first module 110A and the second module 110B are dragged into the same row R, a connection 120 is automatically formed between them. In some implementations, when a first module 110A and a second module 110B are inserted into the DSP module mesh 100, a first connection 120 is automatically formed between a first node 115A of the first module 110A and a second node 115B of the second module 110B. It should be understood that either the first module 110A or the second module 110B can be inserted into the DSP module mesh 100 first. In some implementations, the DSP module mesh 100 is configured to determine the node type of each node 115A, 115B and automatically create appropriate connections 120 between the first modules 110A, 110B. For example, in Figure 1AIn this configuration, a first connection 120 is formed between the output node 115A of the first module 110A and the input node 115A of the second module 115B. In some embodiments, such as when the first module 110A and the second module 110B are dragged into the same column (e.g., C2), the first connection 120 is not formed. In some embodiments, this is because the DSP module grid 100 recognizes the first module 110A and the second module 110B as two separate components of the DSP module grid 100. However, in some embodiments, the opposite is true; that is, the first connection 120 is automatically formed when the first module 110A and the second module 110B are inserted into the same column (e.g., column C2) rather than the same row R. In some embodiments, inserting the first module 110A and the second module 110B automatically aligns them in the same row R unless the user moves them separately. In some implementations, inserting the first module 110A and the second module 110B will automatically align the first module 110A and the second module 110B in the same column C, unless the user moves them separately. Although Figure 1A The illustration shows that modules 110A, 110B, and 110C each occupy a single unit, but it should be understood that in some embodiments, modules 110A, 110B, and 110C may overlap each other.
[0038] Figure 1B This is an example digital signal processing (DSP) grid 100 having a first module 110A, a second module 110B, and a third module 110C, according to the present technology. In some embodiments, the DSP module grid 100 is... Figure 1A The DSP module grid 100. In some embodiments, the DSP module grid includes a plurality of cells 105A, 105B, 105C...105N, which are arranged in a plurality of rows R1...RN and a plurality of columns C1, C2, C3...CN. In some embodiments, the DSP module grid 100 also includes a third module 110C. In some embodiments, the first module 110A, the second module 110B, and the third module 110C may be collectively referred to as a plurality of modules 110. It should be understood that the plurality of modules 110 may be described as being adjacent to each other. For example, as... Figure 1B and Figure 1C As shown, the first module 110A can be considered adjacent to the third module 110C. Similarly, the third module 110C can be considered adjacent to the second module 110B. In some embodiments, the first module 110A can be considered the first adjacent module 110A, and the second module 110B can be considered the second adjacent module 110B. Furthermore, in some embodiments, the third module 110C can be considered the adjacent module of the first module 110A, and the second module 110B can be considered the next adjacent module of the first module 110A.
[0039] In some implementations, the third module 110C is inserted into the DSP module grid 100. In some implementations, similar to the first module 110A and the second module 110B, the third module 110C represents a component of the DSP design. In some implementations, the third module 110C is a type of component. In such implementations, the type of component includes, for example, audio inputs, equalizers (such as parametric equalizers), gain converters, matrices, mixers, audio outputs, etc. In some implementations, the type of each module determines several attributes of the third module 110C, such as... Figure 2A This is described in further detail below. In some embodiments, the third module 110C includes a third input node 115C-i and a third output node 115C-ii. In some embodiments, the node can be either an input node of one type or an output node of another type. For example... Figure 1B As shown, the third module 110C may include a third input node 115C-i and a third output node 115C-ii.
[0040] In operation, when the third module 110C is inserted between the first module 110A and the second module 110B, the first module 110A, the second module 110B, or both the first module 110A and the second module 110B, are shifted along row R of the DSP module grid to make room for the third module 110C. In some embodiments, the third module 110C is automatically aligned in the same row R of the DSP module grid 100. In embodiments where modules 110A and 110B are automatically aligned in column C, the third module 110C may be automatically aligned in the same column C of the DSP module grid 100. In some embodiments, the third module 110C automatically forms a first connection 120A and a second connection 120B between the first module 110A and the second module 110B, respectively. In some embodiments, the input node 115C-i of the third module 110C is automatically connected to the first node 115A of the first module 110A, and the output node 115C-ii of the third module 110C is automatically connected to the second node 115B of the second module 110B. In such implementations, the first module 110A, the second module 110B, and the third module 110C are automatically aligned and connected. In some implementations, the user can replace a module by selecting a cell in the DSP module grid that already contains the module and inserting the new module into the grid. In such implementations, the new module will replace the module that was originally in the cell of the DSP module grid.
[0041] Figure 1CThis is an example digital signal processing (DSP) module grid 100 having a first module 110A, a second module 110B, and a third module 110C, according to the present technology. In some embodiments, the DSP module grid 100 is... Figure 1A The DSP module grid 100 includes, in some embodiments, a plurality of cells 105A, 105B, 105C...105N arranged in a plurality of rows R1...RN and a plurality of columns C1, C2, C3...CN. In some embodiments, the DSP module grid 100 includes a first module 110A and a second module 110B. In some embodiments, the DSP module grid 100 further includes a third module 110C. In some embodiments, the first module 110A, the second module 110B, and the third module may be collectively referred to as a plurality of modules 110.
[0042] In some implementations, the third module 110C includes a missing input node 125A and a missing output node 125B. As defined herein, missing nodes 125A and 125B symbolically represent the absence of one node. Therefore, when module 110C has a missing node, nothing is connected to the other nodes (such as...). Figure 1C (e.g., 115A, 115B in the original text). For example, the third module 110C may not include corresponding input nodes, output nodes, or combinations thereof that can be connected to the first module 110A or the second module 110B. Although missing nodes 125A, 125B are illustrated as rectangles, it should be understood that this is merely a symbol indicating the absence of a node, and in some embodiments, there may be no visual indicator of missing nodes 125A, 125B included in the third module 110C. It should also be understood that a missing node is not a structural component of the module, but rather the absence of a node (input or output node). Therefore, there is no signal on that row of the module. In operation, the input searches to the left until it finds an output signal on the module. Since a missing node is not actually a node, the signal bypasses the so-called missing node. The third module may include additional nodes, such as 115C, that are not connected to other nodes of adjacent modules 110A, 110B. In some embodiments, the additional output node 115C is not connected to another node because the user has not yet inserted a module configured to connect to node 115C.
[0043] In some implementations, when the third module 110C includes missing nodes 125A and 125B, the first connection 120 between the first module 110A and the second module 110B is maintained.
[0044] During operation, when the third module 110C is inserted, the missing nodes 125A and 125B are bypassed, thus maintaining the first connection 120 between the first module 110A and the second module 110B. In some implementations, such as Figure 3A As explained in detail, the third module 110C can be modified to include missing node 125. In such embodiments, once the third module 110C is modified to include missing nodes 125A and 125B, the missing nodes are bypassed, thereby forming or maintaining a first connection 120 between the first module 110A and the second module 110B. In some embodiments, the alignment of the first module 110A, the second module 110B, and the third module 110C is also maintained.
[0045] Figure 1D This is an example digital signal processing (DSP) module grid 100 according to the present technology, having a first module 110A and a second module 110B. In some embodiments, the DSP module grid 100 includes a plurality of cells 105A, 105B, 105C...105N, which form a plurality of rows R1...RN and a plurality of columns C1, C2, C3...CN. In some embodiments, the DSP module grid 100 also includes the first module 110A and the second module 110B, and a connection 120 between the first module 110A and the second module 110B. In some embodiments, the DSP module grid includes one or more blank cells 105A-i, 105B-i, 105C-i.
[0046] In some embodiments, a first connection 120 is formed between adjacent modules (such as the first module 110A and the second module 110B) via any number of blank units 105A-i, 105B-i, 105C-i. In some embodiments, the first connection 120 may span any number of blank units 105A-i, 105B-i, 105C-i. Although in Figure 1D Three blank cells 105A-i, 105B-i, and 105C-i are illustrated, but there may be any number of blank cells between the first module 110A and the second module 110B. The first node 115A can be connected to the second node 115B through any number of blank cells.
[0047] Figure 2A This is an example module 210 according to the present technology. In some embodiments, module 210 may be... Figures 1A to 1DThe module 210 may include any one of modules 110A, 110B, or 110C. In some embodiments, module 210 includes a first node 215A-i having an input node type, a second node 215A-ii having an output node type, a third node 215B having an output node type, and a fourth node 215C having an output node type. In some embodiments, module 210 may also include one or more node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D (also referred to herein as “module modifiers”). Figure 2A The example also illustrates mouse pointer 240. Each node 215 (215A-i, 215A-ii, 215B, 215C) of module 210 may have a node type. As described herein, the node type may be selected from either an input node type or an output node type.
[0048] like Figure 2A As shown, module 210 includes a first node 215A-i having an input node type and a second node 215A-ii having an output node type. In some embodiments, the first node 215A-i and the second node 215A-ii can be modified using corresponding first node modifiers 230A-i and 230A-ii. In some embodiments, the first node modifier 230A-i and the second node modifier 230A-ii are configured to delete the first node 215A-i and / or the second node 215A-ii, respectively, delete the type of the first channel node 215A-i or the second node 215A-ii, or a combination thereof. In some embodiments, such as when the first node 215A-i has an input node type, the first node modifier 230A-i can be configured to add additional nodes, each of which has an input node type. In some implementations, the second node modifier 230A-ii may be configured to add another node with an output type, or to multiply (i.e., split) the signal sent from module 210 at the second node 215A-ii into a "first second" node and a "second second" node, and / or name the signal sent from the second node 215A-ii. In some implementations, the first node modifier 230A-i and / or the second node modifier 230A-ii may be further configured to change the mute state of the first node 215A-i or the second node 215A-ii, respectively, wherein the mute state can be mute or unmute. In some implementations, the first node modifier 230A-i and / or the second node modifier 230A-ii may remove a node (i.e., add a missing node).
[0049] In some embodiments, module 210 further includes a third node 215B having an output node type. Similar to the first node 215A-i, a corresponding third node modifier 230B-i can be configured to modify the third node 215B. In some embodiments, the third node modifier 230B-ii can be further configured to multiply (e.g., split the signal at the third node 215B into a first third node and a second third node) and / or name the signal transmitted from the third node 215B.
[0050] In some implementations, the fourth node modifier 230B-i is configured to add neighboring nodes. In some implementations, the neighboring node modifier 230B-i is configured to add neighboring nodes with an output type. The neighboring node modifier 230B-i can modify neighboring nodes in the manner described herein, i.e., the presence or absence of neighboring nodes, the names of neighboring nodes, the mute status of neighboring nodes, the node type of neighboring nodes, etc.
[0051] Figure 2A The diagram also shows a fourth node 215C. As described with respect to the first node 215A-i, the second node 215A-ii, and the third node 215B, the fourth node 215C may also include a corresponding fifth node modifier 230C-i. In some embodiments, the fifth node modifier 230C-i may be further configured to multiply the signal at the output type node 215C (e.g., split the signal into a first fourth node and a second fourth node at the fourth node 215C), remove a node (i.e., add a missing node), and / or name the signal sent from the fourth node 215C. In some embodiments, the fifth node modifier 230C-ii may be further configured to change the mute state of node 215C, wherein the mute state can be mute or unmute.
[0052] In some implementations, a second adjacent node modifier 230C-i may also exist. In some implementations, the second adjacent node modifier 230C-i can add or remove second adjacent nodes (in... Figure 2A (Illustrated as removed or "missing"). In some implementations, the second neighbor node modifier 230C-i can modify the second neighbor node, including but not limited to naming the signal received by the second neighbor node, muting or unmute the second neighbor node, removing the node (i.e., adding a missing node), and / or changing the node type of the second neighbor node from an input type node to an output type node, and vice versa.
[0053] Although Figure 2AThe example illustrates four nodes 215A-i, 215A-ii, 215B, and 215C, but it should be understood that module 210 may include any number of nodes 215A-i, 215A-ii, 215B, and 215C. Module modifier 230D can be configured to add additional nodes with input or output node types. Furthermore, in some embodiments, the type of the node or the type of the module determines what the node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D are configured to modify. For example, for a module with only output type nodes, the corresponding adjacent node modifier may not include the functionality to add input type nodes.
[0054] Furthermore, in some implementations, the hardware represented by the modules can determine what the node and / or module modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D are configured to modify. For example, in a speaker with only two physical inputs, the node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D may only be able to add and / or modify two nodes with input node types. In some implementations, one or more of the node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D may be omitted. Furthermore, in some implementations, the module type (e.g., equalizer) can determine what the node and / or module modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D are configured to modify.
[0055] During operation, when the mouse (or mouse pointer) 240 hovers over module 210 or any node, one or more module properties are displayed. For example, module name 235 may be displayed. In some embodiments, node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D are also displayed, allowing nodes and / or modules to be modified by a user of the DSP module mesh. In some embodiments, node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D include labels to inform the user of the functionality of node modifiers 230A-i, 230A-ii, 230B-i, 230B-ii, 230C-i, 230C-ii, and 230D.
[0056] In some implementations, regardless of how multiple modules (such as Figures 1A to 1D Each module 110 in the multiple modules 210 maintains the alignment of the multiple modules. In some implementations, when a node of module 210 is modified, adjacent modules (such as...) are maintained where possible. Figures 1A to 1D The connections between modules 110A, 110B, and 110C. For example, if the first node 215A-i and the second node 215A-ii are not modified, but the third node 215B is deleted, the connections between the first node and any adjacent modules will be preserved, while the connections between the second nodes will be removed because there will no longer be nodes there. In some implementations, such as Figure 2B As shown, the third node 215B will become the "missing node" as described herein, and can be automatically connected by two modules on either side of module 210 to bypass the missing node.
[0057] Figure 2B This is an example digital signal processing (DSP) module grid 200 according to the present technology, having a first module 210A, a second module 210B, and a third module 210C (also referred to herein as multiple modules 210). In some embodiments, the DSP module grid 200 includes multiple cells 205A, 205B, 205C...205N, which form multiple rows R1...RN and multiple columns C1, C2, C3...CN. In some embodiments, the DSP module grid 200 also includes a first module 210A, a second module 210B, and a third module 210C. In some embodiments, there is a connection 220A between the first module 210A and the third module 210C, a connection 220C between the third module 210C and the second module 210B, and a connection 220B between the first module 210A and the second module 210B.
[0058] In some implementations, the number of nodes 215 (such as nodes 215A-i, 215A-ii, 215B, 215C) of a given module 210 determines how many cells in the plurality of elements 205A, 205B, 205C...205N are filled by the module 210. In some implementations, the number of types of nodes 215 (215A-i, 215A-ii, 215B, 215C) of a given module 210 determines how many cells in the plurality of elements 205A, 205B, 205C...205N are filled by the module 210. For example, as... Figure 2BAs illustrated, the first module 210A may include a first node 215A and a second node 215B, thus filling two cells of the DSP module mesh 200. In other embodiments, the first module 210A may include a first node type 215A (such as a first output, including any number of nodes) and a second node type 215B (such as a second output, including any number of nodes). In such embodiments, because the first module 210A includes two node types, the first module 210A fills two cells of the DSP module mesh 200.
[0059] In some implementations, the third module 210C includes missing nodes 225A and 225B. In such implementations, the connection 220B between the first module 210A and the second module 210B will be... Figure 1D The method shown connects the first module 210A and the second module 210B through missing nodes 225A and 225B.
[0060] Figures 3A to 3D This is an example process block illustrating the use of a digital signal processing (DSP) module grid 300 according to the present technology. In some embodiments, the DSP module grid 300 includes a plurality of cells 305A, 305B, 305C...305N. In some embodiments, the plurality of cells 305A, 305B, 305C...305N are arranged in a plurality of rows R1...RN and a plurality of columns C1, C2, C3...CN.
[0061] In some implementations, one or more blank cells 310A, 310B, 310C...310N are selected, such as Figure 3A The cells are shown in bold as 310A, 310B, 310C...310N. In some embodiments, one or more blank cells 310A, 310B, 310C...310N may be in the same column C2 of the DSP module grid 300. In some embodiments, one or more blank cells 310A, 310B, 310C...310N may be in the same row. In some embodiments, one or more blank cells 310A, 310B, 310C...310N may be in multiple columns and / or rows of the DSP module grid. In some embodiments, an array of blank cells 310A, 310B, 310C...310N may be selected, such as a 2×3 blank cell array. In some embodiments, one or more discontinuous cells may be selected. For example, the user may select cells at C1, R1 and cells at C1, R3.
[0062] In some implementations, the module type can be selected. In some implementations, the module type is selected from multiple modules organized in a list, drop-down menu, etc. In some implementations, the module type is selected by typing the desired module and selecting the module returned by the search bar. In some implementations, the module type is selected by copying a module already on the DSP module grid 300.
[0063] exist Figure 3B In the process, after selecting the module type, each blank cell is filled with individual modules 315A, 315B, and 315C of the selected module type. Figure 3A (310A, 310B, 310C...310N). In this way, modules 315A, 315B, and 315C are all modules of the same type. In some implementations, each module includes one or more nodes 320A, 320B, 320C...320N.
[0064] exist Figure 3C In the middle, one or more blank units 310A-i, 310B-i, 310C-i...310N-i were selected from the second group, such as Figure 3C The bolded units 310A-i, 310B-i, 310C-i...310N-i are shown in some embodiments. In some implementations, a second group of one or more blank units 310A-i, 310B-i, 310C-i...310N-i are... Figure 3A One or more blank units 310A, 310B, 310C...310N are directly adjacent. In some embodiments, the second group of one or more blank units 310A-i, 310B-i, 310C-i...310N-i can be located anywhere on the DSP module grid 300. In some embodiments, the second group of one or more blank units 310A-i, 310B-i, 310C-i...310N-i can be discontinuous. In some embodiments, the second module type is selected from multiple modules. In some embodiments, the second module type can be the same type as the first module type 315A, 315B, 315C...315N. In such embodiments, the second type modules 325A, 325B, 325C...325n (e.g., ...) can be used. Figure 3D(As shown) Copy and paste into one or more blank cells 310A, 310B, 310C...310N in the second group. In some embodiments, when adding modules 315A, 315B, 315C...315N, adjacent group cells (one or more blank cells 310A-i, 310B-i, 310C-i...310N-i in the second group) are automatically selected. It should be understood that any number of modules of any type can be selected in this way and copied into adjacent cells. In some embodiments, their connections are maintained when modules are copied and pasted.
[0065] exist Figure 3D In this configuration, the second type modules 325A, 325B, 325C...325D automatically fill each cell in the second group of one or more blank cells 310A, 310B, 310C...310N. In some embodiments, the second type modules 325A, 325B, 325C...325D are of a different type from the first type modules 315A, 315B, 315C...315N. In some embodiments, the second type modules 325A, 325B, 325C...325D each have one or more nodes 330A, 330B, 330C...330N. In some implementations, when the first type modules 315A, 315B, 315C...315N and the second type modules 325A, 325B, 325C...325D are compatible with each other (e.g., including one or more inputs configured to be coupled to one or more outputs), connections 335A, 335B, 335C...335N are automatically formed between the first type modules 315A, 315B, 315C...315N and the second type modules 325A, 325B, 325C...325D. In some implementations, the first type modules 315A, 315B, 315C...315N and the second type modules 325A, 325B, 325C...325D can be selected together and further pasted into other empty cells of the DSP module grid. In such implementations, connections 335A, 335B, 335C...335N are maintained in both the original first-type modules 315A, 315B, 315C...315N and the second-type modules 325A, 325B, 325C...325D, as well as copies of the first-type modules 315A, 315B, 315C...315N and the second-type modules 325A, 325B, 325C...325D.
[0066] Figure 4A first module 410A, a second module 410B, and a third module 410C having multiple connections 420A, 420B according to the present technology are illustrated. In some embodiments, the DSP module grid (such as DSP grid 100, 200, or 300 as described herein) does not include visible cells (such as cells 105, 205, or 305 as described herein). In such embodiments, the first module 410A, the second module 410B, and the third module 410C can still be aligned in the grid even if no visible grid lines are present. The first module 410A, the second module 410B, and the third module 410C may be collectively referred to herein as multiple modules 410.
[0067] In some implementations, each connection 420A, 420B between the multiple modules 410 represents one or more nodes of a node type. For example, as Figure 4 As illustrated, connection 420A between the first module 410A and the third module 410C represents two nodes of the first node type. Furthermore, connection 420B between the third module 410C and the second module 410B represents twelve nodes of the second node type. It should be understood that the first node type and the second node type can be the same. In some embodiments, the node type can be selected from inputs, outputs, or combinations thereof. Figure 4 As shown, the first module 410A includes two output channels, denoted as node 415A, which is connected to the input node 415C-i of the third module 410C via a single connection 420A with two instrument indicators. The third module 410C includes an output node 415C-ii. The output node 415C-ii includes 12 output channels and is connected to the input node 415B of the second module 410B via a single connection 420B with 12 instrument indicators. This allows for a clear and concise illustration of the DSP design without becoming cluttered by each individual channel occupying a single connection between the input and output nodes.
[0068] Figure 5A This refers to a first module 510A, a second module 510B, a third module 510C, and a fourth module 510D, which have multiple instruments 545A, 545B, 545C, 545D, 545E, and 545F, according to the present technology. In some implementations, the DSP module grid (such as DSP module grids 100, 200, or 300 as shown herein) includes two modes, namely design modes (such as... Figures 1A to 1D , Figures 2A to 2B , Figures 3A to 3D and Figure 4 (as shown) and lock modes (such as) Figures 5A to 5C(As shown). In some embodiments, modules 510A, 510B, 510C, 510D, nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, 515H, 5151, missing nodes 525A, 525B, and the illustrated connections constitute DSP design 500. It should be understood that multiple modules 510A, 510B, 510C, 510D are representative, and any number of modules with any number of nodes and any number of connections can constitute the DSP design 500 as described herein.
[0069] In locked mode, multiple modules 510A, 510B, 510C, and 510D of the DSP module mesh are prevented from being moved, modified, or disconnected. It should be understood that the multiple modules 510A, 510B, 510C, and 510D are merely representative, and any number of modules can be included within the multiple modules 510A, 510B, 510C, and 510D. In some implementations, the multiple modules are... Figures 1A to 1D , Figures 2A to 2B , Figures 3A to 3D or Figure 4 The diagram shows multiple modules. In some embodiments, the multiple modules 510A, 510B, 510C, and 510D include a first module 510A, a second module 510B, a third module 510C, and a fourth module 510D. In some embodiments, changes to node connections and / or node modifiers are prevented when in locked mode.
[0070] In some implementations, in locking mode, for each of the multiple connections (in Figure 5A The text does not specify whether each meter 45A, 545B, 545C, 545D, 545E, or 545F is being displayed to prevent obstruction. Meters 545A, 545B, 545C, 545D, 545E, and 545F are shown. In some embodiments, each meter 545A, 545B, 545C, 545D, 545E, and 545F is configured to display a determination of whether each signal level is appropriate or has problems such as signal loss or clipping. In some embodiments, in locked mode, key 560 is displayed. In some embodiments, key 560 indicates whether clipping has occurred in the connection (in...). Figure 5A (shown as a rectangle with diagonals) or no signal passes through the connection (in) Figure 5A (As shown in the image, a white rectangle). Figure 5A As shown, no clipping occurs at present, and the signal passes through each connection. In some implementations, the meter 545D can represent any number of connection types. For example, in Figure 5A In the diagram, instrument 545D represents twelve separate connections. These connections are not currently experiencing clipping.
[0071] Figure 5B Example instruments 545A and 545B according to the present technology are shown, one with clipping and the other with clipping. In some embodiments, instruments 545A and 545B may be the same instrument in two different states (i.e., one with clipping and the other with clipping). In some embodiments, instruments 545A and 545B may be... Figure 5A Instrument 545D. In some implementations, instruments 545A and 545B may be two separate instruments, where instrument 545A is not clipped, while the other instrument 545B is clipped.
[0072] In some implementations, the entire connection is considered clipped if even one of the channels 520A, 520B of the corresponding instruments 545A, 545B experiences clipping. In some implementations, this is indicated by instruments 545A, 545B. In some implementations, the connection is clipped when instruments 545A, 545B are at full capacity (as indicated by "12" on 545B). In some implementations, when an instrument is at full capacity, instrument 545B changes color, such as from blue to red, or from green to red.
[0073] In some implementations, meter 545A for each node is displayed when the user hovers the mouse over the node. In some implementations, each node may include one or more channels. In such implementations, when the user hovers the mouse over meters 545A, 545B, channel meters for each of the one or more channels are displayed. In this way, the user can view the meters for each of the multiple nodes 520A, 520B to determine which node is clipping and adjust that node (or the signal applied to one or more channels) accordingly. Figure 5B As shown, clipping occurs in instrument 545B because clipping occurs in clipping channel 550.
[0074] Figure 5CMultiple modules 510A, 510B, 510C, and 510D according to this technology, each module having node modifiers 555A, 555B, 555C, 555D, 555E, 555F, 555G, and 555H for testing signal generators. In some embodiments, the multiple modules 510A, 510B, 510C, and 510D each include one or more nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, and 515H. Connections 520A, 520B, 520C, and 520D connect the multiple nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, and 515H to each other, as described herein. Module 510C, one of the multiple modules 510A, 510B, 510C, and 510D, also includes a missing node 525, which is bypassed, as described and illustrated herein. In some embodiments, modules 510A, 510B, 510C, 510D, nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, 515H, the missing node 525, and connections 520A, 520B, 520C, and 520D constitute DSP design 500. It should be understood that the multiple modules 510A, 510B, 510C, and 510D are representative, and any number of modules with any number of nodes and any number of connections can constitute the DSP design as described herein.
[0075] In some implementations, in locked mode, node modifiers 555A, 555B, 555C, 555D, 555E, 555F, 555G, and 555H are added to one or more nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, and 515H. In some implementations, node modifiers 555A, 555B, 555C, 555D, 555E, 555F, 555G, and 555H are added to each node 515A, 515B, 515C, 515D, 515E, 515F, 515G, and 515H of multiple modules 510A, 510B, 510C, and 510D. In some implementations, node modifiers 555A, 555B, 555C, 555D, 555E, 555F, 555G, and 555H are configured to generate tones to determine whether nodes 515A, 515B, 515C, 515D, 515E, 515F, 515G, and 515H are operable or whether their operation is satisfactory to the user. In some implementations, such as when each of a plurality of modules represents one or more hardware components, the user can select a node modifier of interest (e.g., node modifier 555A) to test a node of interest (e.g., node 515A of the first module 510A). In this way, the user can use a signal generator to test the hardware represented by one or more of the plurality of modules 510A, 510B, 510C, and 510D to determine whether one or more modules 510A, 510B, 510C, and 510D are operable.
[0076] Figure 6 This is an example method 600 for creating a digital signal processing (DSP) module mesh on a computer user interface according to the present technology.
[0077] In block 605, a first module (such as first module 110A, 210A, 310A, 410A, or 510A as described herein) and a second module (such as second module 110B, 210B, 310B, 410B, or 510B as described herein) are inserted into a DSP module grid (such as DSP module grid 100, 200, or 300 as described herein). In some embodiments, as... Figures 3A to 3D The first and second modules are inserted in the manner shown and described. In some implementations, the first and second modules can be dragged and dropped into the DSP module grid.
[0078] In box 610, the first module and the second module can be automatically aligned. In some implementations, the first module and the second module can be automatically aligned in a row or a column.
[0079] In box 615, utilizing the first connection (such as...) Figure 1AThe first connection (120) automatically connects the first node of the first module to the second node of the second module. In some embodiments, the first connection may represent any number of channels of the first node of the first module and any number of channels of the second node of the second module being connected. For example, if the first node has three channels and the second node has three channels, a single connection may represent all three channels of the first node and all three channels of the second node being connected.
[0080] In block 620, a third module (such as the third module 110C, 210C, 310C, or 410C described herein) is inserted into the DSP module grid. In some embodiments, as shown below... Figures 3A to 3D The third module is inserted in the manner shown and described. In some implementations, the third module can be dragged and dropped into the DSP module grid.
[0081] In box 625, the first and second modules are shifted to make room for the third module, such as... Figure 1B As shown. In some embodiments, the first and second modules move the number of units required to accommodate the third module. In some embodiments, only the first or second module is shifted to accommodate the third module. In some embodiments, a user can replace a module by selecting a unit in the DSP module grid that already contains the module and inserting the new module into the grid. In such embodiments, the new module will replace the module that was originally in the unit of the DSP module grid.
[0082] In box 630, the third module is automatically aligned with the first and second modules, as follows: Figure 1B As shown. In some implementations, the first module, the second module, and the third module may be aligned in a row or a column.
[0083] Figure 7 This is an example method 700 for creating a digital signal processing (DSP) module mesh on a computer user interface according to the present technology. In some embodiments, block 705 of method 700 is the same as block 630 in method 600. In such embodiments, method 700 may occur directly after method 600.
[0084] In box 705, the third module is automatically aligned with the first and second modules, as follows: Figure 1B As shown. In some implementations, the first module, second module, and third module may be aligned in a row or a column. In some implementations, the third module includes a third node, such as... Figure 1B and Figure 1C As shown. In some implementations, the third node includes an input terminal (such as...) Figure 1B The input terminal 115C-i and the output terminal (such as...) Figure 1BOutput terminal 115C-ii).
[0085] In decision box 710, determine whether the third node of the third module is a missing node (such as...). Figure 1C (Missing node 125 in the third module). When the third module does not include the missing node, the method proceeds to box 715A.
[0086] In block 715A, a first connection is automatically formed between the input of the third module and the first node of the first module. Furthermore, a second connection is automatically formed between the output of the third module and the second node of the second module. In this way, the third module can be inserted into the DSP module grid and automatically incorporated into the DSP design. The method then proceeds to block 720.
[0087] In box 720, modify one or more attributes of the first module, the second module, and / or the third module. In some implementations, such as Figure 2A As shown and described, one or more attributes of the first module, second module, and / or third module are modified. In some embodiments, the modification of the attributes of the first module, second module, and / or third module can be done without breaking the connection between the first module, second module, and / or third module. In such embodiments, the connection (i.e., the first connection and the second connection) can be preserved.
[0088] Returning to decision box 710, if it is determined that the third module includes a missing node, the method proceeds to box 715B.
[0089] In block 715B, the missing node of the third module is bypassed while maintaining the first connection between the first and second modules. In some implementations, this is as follows: Figure 1C It happens as shown. Then, the method proceeds to box 720.
[0090] Figure 8 This is an example method 800 for creating a digital signal processing (DSP) module mesh on a computer user interface according to the present technology. In some embodiments, method 800 occurs directly after method 600 and / or method 700.
[0091] In block 805, a locking mode is applied to the DSP module mesh. In some implementations, the locking mode is as follows: Figures 5A to 5C The locking mode is shown and described. In some implementations, in the locking mode, the first, second, and third modules of the DSP module mesh are prevented from being moved, modified, or disconnected.
[0092] In box 810, display instruments (such as...) are provided for each connection of the first, second, and third modules. Figure 5AInstruments 545A, 545B, 545C, 545D, 545E, and 545F. In some embodiments, instruments are displayed for each node of the first, second, and third modules. In some embodiments, a single instrument is used to represent multiple nodes in a single connection. In some embodiments, block 805 occurs simultaneously with block 810.
[0093] In box 815, it is determined whether clipping has occurred on one or more connections (or nodes). In some implementations, this is as follows: Figures 5A to 5B As shown and described. In some implementations, each instrument displays a determination of whether clipping has occurred at a node or connection (consisting of one or more channels).
[0094] In box 820, a signal generator is added to the DSP mesh module. In some implementations, a node modifier (such as...) is displayed at each node in the first, second, and third modules. Figure 5C The node modifiers in the code are 555A, 555B, 555C, 555D, 555E, 555F, 555G, and 555H.
[0095] In block 825, a signal generator is used at one or more node modifiers to test the hardware represented by the first, second, and / or third modules to ensure hardware operability. In some implementations, such as when each of the multiple modules represents one or more hardware components, a user can add a signal generator with the node modifier of interest to test the node of interest. In this way, the user may be able to determine whether a given node is operable or whether its performance meets specific criteria. It should be understood that in some implementations, the DSP design is conceptual, i.e., there is no associated physical hardware. Furthermore, in some implementations, the DSP design is executed by software (e.g., a single computer).
[0096] Figure 9 This is an example method 900 for creating a digital signal processing (DSP) module mesh on a computer user interface, based on the present technology.
[0097] In box 905, multiple modules are inserted into the DSP module grid. In some implementations, such as Figures 3A to 3DThe process involves inserting multiple modules into a DSP module grid. In some embodiments, each of the multiple modules can be dragged and dropped into the DSP module grid. In some embodiments, DSP modules can be dragged and dropped after being placed into the DSP module grid. In some embodiments, as modules or multiple modules are dragged, a preview is shown of how the nodes of each dragged module will reconnect or maintain their connections, allowing the user to determine the final connections based on the position of the modules being moved. In some embodiments, one or more modules can be copied and then pasted into the DSP module grid.
[0098] In box 910, multiple modules are aligned in the same row or column.
[0099] In box 915, each node of the multiple modules is connected to one or more nodes of adjacent modules. In some embodiments, adjacent modules include missing nodes. In such embodiments, missing nodes are bypassed, such that the node is instead connected to one or more nodes of the next adjacent module in that row or column.
[0100] Figure 10 This is an example method 1000 for creating a digital signal processing (DSP) module mesh on a computer user interface according to the present technology. In some implementations, in Figures 3A to 3D The process diagram illustrates method 1000.
[0101] In box 1005, select one or more blank cells from a plurality of cells in the DSP module grid. In some embodiments, a column or row of the DSP module grid may be selected. In some embodiments, an array of blank cells, such as a 2×3 cell array, may be selected. In some embodiments, discontinuous cells may be selected.
[0102] In box 1010, select the module type. In some implementations, the module type is selected from multiple modules. In some implementations, multiple modules are organized as a list, drop-down menu, or searchable database. In some implementations, the module type is selected by copying modules (or multiple modules) from the DSP module grid.
[0103] In box 1015, each selected blank cell is filled with a single module of the selected module type. In some embodiments, each blank cell is filled with a single module of the same type. In some embodiments, such as when multiple modules are copied, each cell is filled with each of the copied cells. For example, if two adjacent modules aligned in a row are copied, and the user selects four blank cells aligned in a row, the selected blank cells will be sequentially filled twice by the two adjacent modules. In such embodiments, the connection between the two modules is maintained. In some embodiments, a connection is formed between the newly inserted module and adjacent modules in the DSP module grid and / or between the newly inserted module itself. In some embodiments, adjacent blank cells are automatically selected to allow the user to repeat the action.
[0104] It should be understood that all methods 600, 700, 800, 900, and 1000 should be interpreted as merely representative. In some implementations, without departing from the scope of this disclosure, the process blocks of all methods 600, 700, 800, 900, and 1000 may be performed simultaneously, sequentially, in different orders, or even omitted.
[0105] This application may refer to quantities and numbers. Unless otherwise stated, these quantities and numbers should not be considered limiting, but rather represent possible quantities or numbers associated with this application. Furthermore, for this purpose, this application may use the term "multiple" to refer to a quantity or number. For this purpose, the term "multiple" means any number more than one, such as two, three, four, five, etc. The terms "about," "approximately," "close to," etc., mean plus or minus 5% of the stated value. For the purposes of this disclosure, the phrase "at least one of A, B, and C" means, for example, (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C), including all other possible permutations when listing more than three elements.
[0106] The embodiments disclosed herein utilize circuitry to implement the techniques and methods described herein, operatively connect two or more components, generate information, determine operating conditions, control electrical appliances, devices, or methods, etc. Any type of circuitry can be used. In one embodiment, among other things, the circuitry includes one or more computing devices, such as processors (e.g., microprocessors), central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc., or any combination thereof, and may include discrete digital or analog circuit elements or electronic devices, or combinations thereof.
[0107] The implementation includes one or more data storage devices, such as those storing instructions or data. Non-limiting examples of one or more data storage devices include volatile memory (e.g., random access memory (RAM), dynamic random access memory (DRAM), etc.), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), optical disc read-only memory (CD-ROM), etc.), persistent memory, etc. Further non-limiting examples of one or more data storage devices include erasable programmable read-only memory (EPROM), flash memory, etc. One or more data storage devices can be connected to, for example, one or more computing devices via one or more instruction buses, data buses, or power buses.
[0108] In one embodiment, the circuitry includes a computer-readable medium drive or memory slot configured to receive a signal-bearing medium (e.g., a computer-readable storage medium, a computer-readable recording medium, etc.). In one embodiment, a program for causing the system to perform any of the disclosed methods may be stored on, for example, a computer-readable recording medium (CRMM), a signal-bearing medium, etc. Non-limiting examples of signal-bearing media include recordable media such as any form of flash memory, magnetic tape, floppy disk, hard disk drive, optical disc (CD), digital video disc (DVD), Blu-ray disc, digital magnetic tape, computer memory, etc., and transmission media such as digital and / or analog communication media (e.g., fiber optic cables, waveguides, wired communication links, wireless communication links (e.g., transmitters, receivers, transceivers, transmitting logic, receiving logic, etc.). Further non-limiting examples of signal-bearing media include, but are not limited to, DVD-ROM, DVD-RAM, DVD+RW, DVD-RW, DVD-R, DVD+R, CD-ROM, Super Audio CD, CD-R, CD+R, CD+RW, CD-RW, video disc, Super Video disc, flash memory, magnetic tape, magneto-optical disc, mini disk, non-volatile memory card, EEPROM, optical disc, optical storage device, RAM, ROM, system memory, web server, etc.
[0109] The specific embodiments described above in conjunction with the accompanying drawings (where the same reference numerals refer to the same elements) are intended as a description of various embodiments of this disclosure and not as representing a unique embodiment. Each embodiment described in this disclosure is provided by way of example or illustration only and should not be construed as preferred or advantageous over other embodiments. The illustrative examples provided herein are not intended to be exhaustive or to limit this disclosure to the precise forms disclosed. Similarly, any step described herein may be interchanged with other steps or combinations of steps to achieve the same or substantially similar results. In general, the embodiments disclosed herein are non-limiting, and the inventors anticipate that other embodiments within the scope of this disclosure may include structures and functionalities from more than one particular embodiment shown in the drawings and described in the specification.
[0110] In the foregoing description, specific details have been set forth to provide a thorough understanding of exemplary embodiments of this disclosure. However, it will be apparent to those skilled in the art that the embodiments disclosed herein can be practiced without showing all the specific details. In some cases, well-known process steps have not been described in detail to avoid unnecessarily obscuring various aspects of this disclosure. Furthermore, it should be understood that embodiments of this disclosure may employ any combination of the features described herein.
[0111] This application may include references to directions, such as “vertical,” “horizontal,” “front,” “back,” “left,” “right,” “top,” and “bottom.” These and other similar references in this application are intended to aid in the description and understanding of particular embodiments (such as when embodiments are positioned for use) and are not intended to limit this disclosure to those directions or locations.
[0112] This application may also refer to quantities and numbers. Unless otherwise stated, these quantities and numbers should not be considered limiting, but rather examples of possible quantities or numbers associated with this application. Furthermore, for this purpose, the application may use the term "multiple" to refer to a quantity or number. In this respect, the term "multiple" means any number more than one, such as two, three, four, five, etc. The terms "about," "approximately," etc., mean plus or minus 5% of the stated value. The term "based on" means "at least partially based on."
[0113] The principles, representative embodiments, and operational "modes" of this disclosure have been described in the foregoing description. However, the aspects of this disclosure intended to be protected should not be construed as limited to the specific embodiments disclosed. Furthermore, the embodiments described herein should be considered illustrative rather than restrictive. It should be understood that others may make changes and alterations and adopt equivalents without departing from the spirit of this disclosure. Therefore, it is expressly intended that all such changes, alterations, and equivalents fall within the spirit and scope of the claimed disclosure.
Claims
1. A method for creating a digital signal processing (DSP) module mesh on a computer user interface, the method comprising: Insert the first and second modules into the DSP module mesh; Automatically align the first module with the second module; The first connection is used to automatically connect at least a first node of the first module to at least a second node of the second module; as well as A third module is inserted between the first module and the second module, wherein when the third module is inserted, the first module and the second module are automatically shifted to make room for the third module, and the third module is automatically aligned with the first module and the second module.
2. The method according to claim 1, wherein the third module automatically forms a second connection with the first node and the second node, wherein the third module includes a third node having an input terminal and an output terminal, the input terminal of the third node being automatically connected to the first node, and the output terminal of the third module being automatically connected to the second node.
3. The method according to claim 1, wherein the third module includes a missing input node and a missing output node, and wherein the method further includes: By bypassing the missing input node and the missing output node through the first module and the second module, the missing input node and the missing output node are not connected to the first node of the first module or the second node of the second module; After the third module is inserted, the first connection between the first node of the first module and the second node of the second module is maintained; as well as The alignment of the first module, the second module, and the third module is preserved.
4. The method according to claim 1, wherein the method further comprises: Modify one or more attributes of the first module, the second module, the third module, or a combination thereof, while preserving the first connection and the second connection of the first module, the second module, and the third module.
5. The method of claim 4, wherein when the one or more attributes are modified, the alignment of the first module, the second module, and the third module is preserved.
6. The method according to claim 4, wherein the one or more attributes are selected from the group consisting of: number of nodes, number of missing nodes, mute state, signal multiplication, name of the signal, name of the module, and node type, wherein the module attributes are displayed by hovering the mouse over the first module, the second module, and the third module.
7. The method according to claim 6, wherein the node type is selected from the group consisting of input node type or output node type.
8. The method of claim 1, wherein in locked mode, moving, modifying, and disconnecting the first module, the second module, and the third module of the DSP module mesh is prevented.
9. The method of claim 8, wherein in the locked mode, the display instrument is used for the first connection and the second connection.
10. The method of claim 9, wherein the instrument displays a determination of whether clipping has occurred on the first connection or the second connection.
11. The method of claim 8, wherein in the locked mode, a signal generator is added to the first node modifier of the first node or the second node modifier of the second node.
12. The method of claim 11, wherein the method further comprises: The signal generator is used to test the hardware represented by one or more of the plurality of modules to determine whether the one or more modules are operable.
13. A method for creating a digital signal processing (DSP) module grid on a computer user interface, wherein the DSP module grid comprises a plurality of cells, wherein the plurality of cells form a plurality of rows and a plurality of columns, the method comprising: Multiple modules are inserted into the multiple units, each of the multiple modules having one or more nodes; For modules inserted in the same row, align the modules within the same row across the multiple rows; Connect one or more nodes of a given module in the plurality of modules to one or more nodes of a first adjacent module in the plurality of modules to form one or more connections; as well as If a given module among the plurality of modules includes a missing node, then the missing node is functionally bypassed such that the missing node is not connected to a node of the first adjacent module in the same row among the plurality of rows, wherein the first adjacent module maintains one or more connections with a second adjacent module.
14. The method of claim 13, wherein each of the plurality of modules fills one of the plurality of cells of the DSP module grid.
15. The method of claim 13, wherein the number of nodes in each module determines how many units each module fills among the plurality of units.
16. The method of claim 13, wherein one or more channels of a node of one type in each of the plurality of modules are represented as a single connection.
17. The method of claim 16, wherein the number of node types in each module determines how many units each module fills among the plurality of units.
18. The method of claim 17, wherein the node type is selected from an input node type or an output node type.
19. The method of claim 13, wherein one or more nodes of the given module in the plurality of modules are connected to one or more nodes of the first adjacent module through any number of blank units in the plurality of units.
20. The method of claim 13, wherein the method further comprises: Select one or more blank cells from the plurality of cells; Select the module type; as well as Each of the one or more blank cells is automatically filled with a single module of the selected module type.