CA2277818A1 - Digital signal mixing architecture - Google Patents

Digital signal mixing architecture Download PDF

Info

Publication number
CA2277818A1
CA2277818A1 CA002277818A CA2277818A CA2277818A1 CA 2277818 A1 CA2277818 A1 CA 2277818A1 CA 002277818 A CA002277818 A CA 002277818A CA 2277818 A CA2277818 A CA 2277818A CA 2277818 A1 CA2277818 A1 CA 2277818A1
Authority
CA
Canada
Prior art keywords
slave
dsp
digital signal
digital
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002277818A
Other languages
French (fr)
Inventor
Greg C. Mackie
Peter F. Watts
Robert J. Tudor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mackie Designs Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2277818A1 publication Critical patent/CA2277818A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/04Studio equipment; Interconnection of studios

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Abstract

An improved digital signal mixing architecture (100) for applications such as digital mixing consoles (76) is provided. The architecture provides a software configurable mixing system that is expanded up to more than 48 channels. The architecture comprises a master DSP (12) device coupled to a plurality of slave DSP devices (10) on a DMA bus (28). The master DSP (12) is interconnected to each of the slave DSPs (10) in a manner that enables the master DSP (12) to command each of the slave DSPs (10) to write the results of its input signal processing to the internal memory of each of the other slave DSPs (10). The master DSP (12) commands the slave DSPs (10) to transmit processed input signals to each other, so that each processed input signal is stored in the memory of each slave DSP (10). Once each slave DSP (10) has the results of every processed input signal, the master DSP (12) commands any combination of the slave DSPs (10) to mix any of the processed input signals to create a mixed signal that is sent to its outputs for conversion to an analog signal (18b). Mixing combinations are controlled by scripts that are interpreted by software. The digital mixing architecture (100) provides a system that is software configurable, so that mixing console is easily reconfigurable and upgradeable.

Description

DIGITAL SIGNAL MIXING ARCHITECTURE
Field Of The Invention The present invention relates generally to digital signal processing, and more particularly, to an improved architecture for a digital signal mixer for processing audio signals.
Background Of The Invention An audio mixer serves as the central component of any professional audio system by electronically blending, routing and enhancing sound sources, such as voices, musical instruments, sound effects, and audio tape, video tape and other live or pre-recorded material. Historically, mixing has been accomplished in analog, partially because of limitations in technology and because inputs (instruments, voices, etc.) are in analog, as well as outputs. However, analog mixers have limited ability to recall or reconfigure the signal flow and other limitations or effects on audio mixing. Therefore, the professional audio mixer market (estimated by industry sources at approximately $1,000,000,000 in 1998) has looked to digital signal processing for the ability to manipulate the signal. Digital signals can be memorized and recalled, unlike analog, giving a total recall of all console parameters and real time automation of the same. But, to date, digital signal processors have been very expensive, with pricing of upward of $1,000,000 per unit and useful only in a single location because of size. No digital signal processor has been able to achieve, at a consumer price point of less than $15,000 per unit, and of portable size, a multiplicity of functions including real time processing, an internal control processing unit with real time upgradeable and recollflgurable capabilities, remote processing and manipulation through device interfaces, hard disk and floppy drives, on-board and remote video monitor, and optional effects integration.
Summary Of The Invention In accord with the present invention, a digital signal mixing architecture is defined that is capable of providing a mixing system expandable to provide a plurality of N channels (N = 48 or more), e.g., from 1 to 48 channels, depending upon the desired configuration of the architecture. Further, it is envisioned that systems incorporating the invention may be combined to form a mixing system capable of mixing more channels than is possible by a single system.
In the preferred embodiment, the invented architecture comprises a master integrated digital signal processor (DSP) device coupled to a plurality of slave integrated digital signal processor (DSP) devices on a Direct Memory Access (DMA) bus. The master DSP performs functions that include data bus arbitration, calculating coe~cient variables for each slave DSP, and transferring the coefficient variables to the slave DSPs.
The slave DSP devices each preferably comprise a DSP device having an arbitrary number, such as n, of audio converters coupled thereto for processing n number of channels. The audio converters convert analog input signals to digital signals for processing by the DSP, and convert the processed digital signal to analog for output of the analog signal. Each slave DSP can process from 1 to n channels (n = 8 or more), typically ranging firom 1-8, depending upon such factors as the number of converters, processing power requirements, and system functionality such as equalization and dynamics processing.
Additionally, some of the channel signal inputs may provided in a digital format that is directly inputted to a slave DSP. In this case, an input converter would not be provided to convert the format of the inputted signal from analog to digital. Also, it may be desirable to output some signals in a digital format.
Consequently, an output converter would not be used to convert the format of a converted input signal ~ from digital back to analog. Although the preferred embodiment employs analog to digital and digital to analog conversion for every channel, another embodiment could be differently configured. Selected channels could provide analog to digital (input only conversion), digital to analog (output only conversion), or digital to digital (no input or output conversion) formats.
Foi example, a 48 channel audio mixing console comprising the digital signal mixing architecture of the present invention may comprise a master DSP
and 24 slave DSPs, with each slave processing 2 channels of digital audio. Thus, the resulting system comprises a software configurable mixing system having 48 inputs and 48 outputs. In a second example, a 16 channel audio mixing system using the invented mixing architecture could comprise a master DSP coupled to 4 slave DSPs, with each slave processing 4 channels of digital audio signals. This configuration results in a software configurable mixing console having 16 inputs and 16 outputs.
A system having greater than 48 channels is achieved by providing a top level master DSP coupled to a plurality of second level master DSPs connected to their slave DSPs. In such a configuration, as an example, the combination of two 48 channel audio mixing systems, each comprising a second level master DSP
coupled to 24 slave DSPs, would result in an audio mixing console capable of mixing 96 channels.
The invented system achieves these features by coupling the master DSP to each of the slave DSPs and interconnecting the slave DSPs in a manner that enables the master to command each of the slave DSPs to write the results of its input signal processing to the internal memory of each of the other slave DSPs. The master DSP
sends commands to the slave DSPs that instruct the slaves to transmit processed input signals to each other, so that each processed input signal is stored in an internal memory of each slave. Wherein, if there are 4 slave DSPs, each slave will have processed input signals stored in its internal memory. Once each slave DSP has the results of every processed input signal in its internal memory, the master can command any combination of the slaves to mix any of the processed input signals to create a mixed signal to send to its outputs to provide mixed digital signals ready for digital-to-analog (D/A) conversion or output.

In use, the master DSP device is initially activated to prepare the master to receive data from a Central Processing Unit (CPU) motherboard disposed within the mixer console. The CPU motherboard downloads data comprising a set of instructions, known as an executable file, to the master DSP. Once the master DSP
has received the executable file from the CPU motherboard, the master is reinitialized for processing the executable file. The CPU motherboard then downloads executable slave DSP files which the master DSP distributes via a data bus to the slaves and writes the files into their internal memory. The slave DSPs then initialize themselves to prepare the system for running a digital audio signal I O mixing sequence.
With analog inputs, analog input signals are first converted to representative digital samples by the audio converters. A stream of input data, representative of the digital samples, is transmitted to the inputs of the slave DSPs for processing. The slaves perform various prescribed signal enhancement functions, such as equalization and compression for instance, on each digital sample and place the resulting data into a selected output memory location. After each sample is processed by each slave, the master DSP instructs slave DSP 1 to place its processed signal on the data bus. The master then latches the data into the memory of selected slave DSPs, depending upon the instructions contained in the master's executable file. The master then instructs slave DSP 2 to place its processed signal on the data bus. The master then latches the data from slave DSP 2 into the memory of selected slave DSPs. This process is repeated until the memory of each slave DSP
contains the processed signal of each of the slave DSPs.
Once the memory of each slave DSP contains the processed signal of each of the slave DSPs, the master DSP generates a signal that instructs the slave DSPs to mix the processed signals in various combinations to create a plurality of output signals, representative of the number of slaves. The various combinations of mix are determined by default coefficient variables that are loaded into the memory of the slaves when their executable files are initially downloaded. Each slave then ~a ~ . _ __....

sends its mixed output signals to its associated audio converters, for providing a mixed analog output signal (or direct output if digital outputs connected to signal).
This process is continuously repeated, and is only interrupted when the master DSP receives a new instruction from the CPU motherboard. When the new instruction is received from the CPU motherboard, the master DSP calculates new coefficient values and places the new values onto the DMA bus and writes the values into the memory of the selected slaves. The new coefficient values overwrite the default values and modify the audio outputs accordingly.
Scripts are employed by the CPU motherboard to configure and control the mixer console. An image of a virtual mixer console may be displayed on a video monitor and the user may employ a keyboard and/or a pointing device to select objects in the image. Scripts are written in plain text. An editor may be employed to edit the scripts, so that features are enabled/disabled and the image displayed to the user is customized. Script updates may be downloaded from a remote computer 1 S or provided in a physical media, such as a floppy disk. Point to point modems, network interface cards and hubs may be employed to connect the CPU
motherboard to the remote computer. New scripts and updates are data encrypted and the serial number of the mixer console is used as the public encryption key. In the preferred embodiment, RSA data encryption is used. However, other data encryption methods may also be employed to provide data security.
Additionally, a look-up table is employed to produce text displayed to the user, and any one of a plurality of languages may be selected.
Thus, the digital mixing architecture of the present invention provides a system that is software configurable, so that a mixing console embodying the invention is easily reconfigurable and upgradeable. Additionally, the software configurable characteristics and channel expandability of the invented architecture provides a digital mixing console that is low cost to upgrade or reconfigure.

Brief Description Of The Drawings T'he objects and features of the present invention, which are believed to be novel, are set forth with particularity in the appended claims. The present invention, both as to its organization and manner of operation, together with further objects and advantages, may best be understood by reference to the following description, taken in connection with the accompanying drawings, in which:
FIGURE 1 is a block diagram showing an exploded view of a slave digital signal processor of a preferred embodiment of an architecture for a DSP system in accord with the present invention;
FIGURE 2 is a block diagram showing n channels of a slave DSP;
FIGURE 3 is a block diagram showing a first portion of a data processing path using the architecture of the present invention;
FIGURE 4 is a block diagram showing a portion of the data path using the architecture of the present invention;
FIGURE 5 is a block diagram showing a third portion of the data path;
FIGURE 6 is an overview schematic diagram of showing the architecture of the present invention, and several external elements;
FIGURE 7 is a flow chart illustrating the steps implemented in software by the master and slave DSPs;
FIGURE 8 is a schematic block diagram of a computer system incorporated in the architecture of the present invention;
FIGURE 9 is block diagram of the software modules incorporated into the architecture of the present invention;
FIGURE 10 is a flow chart showing the steps employed to train the software for use with the mixer console;
FIGURE 11 is a flow chart illustrating the steps implemented at the startup of the mixer console;
FIGURE 12 is a flow chart displaying the steps used to interpret the configuration script;

WO 98!32223 PCT/US98/00689 FIGURE 13a is a first page of a text file that is interpreted by the mixer script engine to produce the image of the desktop manager for the user;
FIGURE 13b is a second page of the text file that is interpreted by the mixer script engine to produce the image of the desktop manager for the user; and S FIGURE 13c is a third page of the text file that is interpreted by the mixer script engine to produce the image of the desktop manager for the user.
Description Of The Preferred Embodiments The following description is provided to enable any person skilled in the art to make and use the invention and sets forth the best modes presently contemplated for carrying out this invention. However, various modifications to the disclosure will be readily apparent to those skilled in the art.
Referring to FIGURE 6, an overview 100 of the hardware architecture employed in the present invention is shown. A mixer console 76 includes a Central Processor Unit (CPU) motherboard 66 that is coupled to a mixer control board 60.
1 S A plurality of switches 61 and lights 63 are connected to mixer control board 60.
Further, control actuators associated with mixer control board 60 are included to automatically position and/or lock the location of a particular type of switch, such as a linear slider, a push button, or a rotary knob (not separately shown). A
Musical Instrument Device Interface (MIDI) port 71 is coupled to mixer control board 60.
In the preferred embodiment, a serial (RS-232) port is employed to couple mixer control board 60 to CPU motherboard 66. CPU motherboard 66 is also coupled to a Liquid Crystal Display (LCD) 74, which provides a user with a visual indication of the status and/or operation of controls on mixer console 76. In another embodiment, LCD display 74 may be another type, such as vacuum fluorescent or Light Emitting Diode (LED). Also, switches 61 and lights 63, which are controlled by CPU motherboard 66, further provide the user with a visual indication of the status and/or operational information related to the state of the mixer control board.
CPU motherboard 66 is in direct communication with a DSP board 62 through a special high speed serial port that is capable of operating at 900 kilobaud (currently running at 115 kilobaud in the preferred embodiment).
Alternatively, a Universal Serial Bus (LJSB} or FireWire communication link could be employed to couple CPU motherboard 66 to DSP board 62 and mixer control board 60. DSP
board 62 includes a master DSP 12 and from one to N slave DSPs (S 1-SN) that are coupled in parallel with master DSP 12 on a Direct Memory Access (DMA) bus 28.
In the preferred embodiment, only one DSP board 62 is provided, and it includes up to a maximum of 48 slave DSPs (i.e., N=48 or more). Coei~icient values for use in determining the signal processing that will be applied are determined for all of the slave DSPs by master DSP 12, and these values are placed into a plurality (N) of latches 19, which are coupled in parallel to DMA bus 28. Each latch 19 corresponds to a particular slave DSP.
Typically, a slave DSP S, controls an Analog to Digital Converter (ADC) 18a that receives an analog signal on an analog input line 24 and converts the analog signal into a corresponding digital signal that includes time varying digital values. Once the digital signal has been processed by slave DSP S ~, a Digital to Analog Converter (DAC) 18b is used to convert the values in the digital signal output from the slave DSP into an analog signal that is supplied on an analog output line 30. The digital output signal of slave DSP S, is stored in S I latch 17, which is coupled in parallel to DMA bus 28. It is envisioned that a plurality of DSP
boards may be coupled to CPU motherboard 66, so that the number of slave DSPs for processing analog signals may be increased accordingly.
Additionally, a channel's signal input may provided in a digital format that does not require analog to digital conversion prior to processing by slave DSP
S. In this case, ADC 18a would not be provided to convert the input format of the channel's signal from analog to digital. Further, it may be desirable to output the channel's signal from slave DSP S in a digital format. Thus, DAC 18b would not be provided to convert the output format of the channel's signal from digital to analog.
However, additional circuitry may be provided to enable slave DSP S to input and output the particular format of the digital signal, e.g., circuitry for processing Alesis Corporation's Alesis Digital Audio Tape (ADAT), Tascam Corporation's Tascam Digital Interface Format (TDIF), and the Audio Engineers Society/European Broadcast Union (AES/EBU) formats. Although the preferred embodiment is shown providing signal converters for every input and output, another embodiment could be differently configured. Selected channels could provide analog to digital (input only conversion), digital to analog (output only conversion), or digital to digital (no input or output conversion) formats.
CPU motherboard 66 may optionally be coupled to a remote computer 52, so that additional services can be remotely provided or controlled. One such additional service would be updating software executed by CPU motherboard 66.
Another such additional service might enable a technical service representative to troubleshoot a problem with mixer console 76 from a geographically remote or distant location.
A video display 54, a pointing device 72 and a keyboard 50 are also preferably coupled to CPU motherboard 66, so that the user may control the operation of mixer console 76 based upon a displayed virtual image of the console.
1 S The user may employ pointing device 72 and/or keyboard 50 to select and/or modify elements in the virtual image that affect the operation of mixer console 76.
However, the user may also operate mixer console 76 with switches 61 and observe the status of lights 63 when video display 54, pointing device 72, and keyboard 50 are not connected to CPU motherboard 66.
An accessory card 78 is also preferably disposed within console 76 to provide additional features, such as selected audio effects, digital outputs, and synchronization signals. Accessory card 78 is then coupled to CPU motherboard through a proprietary bus; a plurality of accessory boards may be connected to this bus. It is envisioned that third party developers may be licensed to provide accessory cards for the present invention. Although not shown, internal accessory boards may be coupled to CPU motherboard 66 that provide additional features, such audio effects.
Referring to FIGURE 7, an overview flowchart 130 indicates the functional or logical steps performed by DSP board 62 in response to an instruction from CPU
motherboard 66. From a start block, the logic moves to a block 132 in which master DSP 12 receives an instruction from CPU motherboard 66. The logic flows to a block 134, in which master DSP 12 determines the coefficients for each appropriate slave DSP in accord with the received instruction. 'The logic then advances to a block 136. In this block, master DSP 12 strobes a series of latches 19 (in S FIGURE 6) that store the new coefficients. These latches are directly coupled to DMA bus 28 and each is associated with a particular slave DSP. The logic advances to a block 138, in which master DSP 12 strobes or commands each pertinent slave DSP to load its new coefficients from the latch 19 that is associated with that slave DSP. After these coefficients are loaded, a new output signal is provided by the slave DSP to another latch on DMA bus 28 that is associated with the slave.
Next, the logic steps to a block 140, and each slave DSP is strobed or commanded to store each of the new output signals produced by the slave DSP in a memory location that corresponds to that slave DSP. Finally, the Logic advances to an end block and the processing of the received instruction is complete.
In FIGURE 8, an exemplary computer system 16 incorporated in the architecture of the present invention includes CPU motherboard 66, a processor 31, a memory 64, an Industry Standard Architecture (ISA) bus 56, and a Peripheral Component Interconnect (PCI) bus 33. A PCI bus controller 58 and an ISA bus controller 57 are employed by processor 31 to monitor and control PCI bus 33 and ISA bus 56, respectively. In fact, most newer PCI bus controls implement the ISA
bus behind the PCI bus, so the processor 31 accesses the ISA bus via the PCI
bus controller, but, for simplification, separate ISA and PCI bus controllers are shown in the Figure.
Memory 64 includes read only memory (ROM) 49 and random access memory (RAM) 35. The basic routines that are employed to transfer information between the components of CPU motherboard 66 are implemented by a basic input/output system (BIOS) 36, which is stored in ROM 49. An operating system 45 and a software program 46 are Loaded into RAM 3 S before the software program is executed by the processor. In the current preferred embodiment, operating system 45 includes a kernel that employs Microdigital Corporation's SMX suite of products; however, the invention is not in any way limited to use of this operating system or operation with this kernel. It should be noted that the SMX
suite of products is ideally suited for real time control systems, because it employs pre-emptive tasking. Further details of the kernel used in the operating system are discussed below. Certain aspects of the present invention are implemented by operating system 45 using a plurality of routines provided by software program 46.
Other programs that may also be loaded into RAM 35 include device drivers that are associated with the devices coupled to CPU motherboard 66, through either ISA
bus 56 or PCI bus 33, which manage interrupts asserted by the associated device.
CPU motherboard 66 optionally is coupled to a hard disk drive 37, which can be used to store software programs, script files, and data. Although not required, the CPU motherboard may also be coupled to access the memory on other nonvolatile storage devices such as a magnetic disk drive 38, and an optical disk drive 40. These nonvolatile storage devices are coupled to either PCI bus 33 or ISA
bus 56 by a hard disk drive interface 44, a magnetic disk drive interface 43, and an optical disk drive interface 42, as appropriate. Magnetic disk drive 38 is employed for reading and writing to a removable magnetic disk 39, while optical disk drive 40 provides for reading from or writing to a removable optical disk 41, such as a Compact Drive-Read Only Memory (CD-ROM) disk, digital versatile/video disk (DVD), or other optical media. Each drive and their associated media provide for the nonvolatile storage of computer readable instructions, and other data for use by CPU motherboard 66. In the preferred embodiment, different types of data may be stored by hard disk drive 37, magnetic disk 39, optical disk 41, ROM 49, and RAM 35. Furthermore, other types of media, such as magnetic cassettes and flash memory cards (not shown), may be employed by CPU motherboard 66 for storing data.
A user of CPU motherboard 66 may employ input devices such as pointing device (mouse) 29 and keyboard S0, to input commands and/or data. Although not shown, other types of input devices may also be employed with CPU
motherboard 66, including a microphone, joystick, game pad, satellite dish, and scanner. An input device is coupled by an input/output (I/O) device interface 53 to processor 31 through either PCI bus 33 or ISA bus 56. A plurality of I/O
device interfaces (not separately shown) may be employed to provide various ports, such as serial, parallel, game, small computer serial interface (SCSI), universal serial bus (USB) and FireWire, for connecting different types of input/output devices to CPU
motherboard 66. For instance, a mixer board 60 may be coupled to a port using an appropriate I/O interface. Also, interfaces for one or more analog-to-digital converters (ADCs), digital-to-analog converters (DACs) - other than those on DSP
board 62, digital input/output, encoders, video frame grabbers, and other equipment that might be used in a process may optionally be included. Display 54 is connected to CPU motherboard 66 through a video adapter 48 that is coupled to processor through either PCI bus 33 or ISA bus 56.
In FIGURE 8, CPU motherboard 66 is shown operating in a networked environment that employs logical connections to one or more remote computers, such as a remote computer 52, which may be a server, a muter, a network personal computer (NETPC}, or another CPU motherboard, and typically will include many of the elements described above that are used on or with CPU motherboard 66. A
network interface 59 is coupled to processor 31 through either ISA bus 56 or PCI
bus 33. Network interface 59 is also coupled through a local area network (LAN) 51 to remote computer 52. LAN S 1 is employed to provide the connection between CPU motherboard 66 and a networked environment that may include an office network, an intranet, and the Internet. In the networked environment, programs that are executable by CPU motherboard 66 may be stored in the memory of remote computer 52. Moreover, it will be appreciated by those skilled in the art that other means, such as a modem 47, may be employed to establish a connection, such as through a wide area network (WAN), between CPU motherboard 66 and remote computer 52. Additionally, it is envisioned that network interface 59 and modem 47 could be disposed external to mixer console 76.
In FIGURE 8, DSP board 62 is coupled to I/O controller 53. As noted above, a high speed serial communication port is employed for communication between DSP board 62 and CPU motherboard 66. DSP board 62 enables the real time processing of audio signals by executing over 3 billion instructions a second.
Further, DSP board 62 can process all signals on all channels in 20 microseconds or less. Although DMA bus 28 is shown as 16 bits wide, the present invention may be implemented on a bus that is 32 bits wide or greater. Also, the bus resolution is compressed to a lower resolution using dithering while retaining signal integrity below the noise floor. For example, the 16 bit DMA bus provides 20 bit resolution using UV22~ software licensed from Apogee Corporation.
Referring now to FIGURE l, a digital signal mixing architecture 10 for applications such as digital mixing consoles configured according to the present invention is illustrated. In such an application, a preferred embodiment of architecture 10 is capable of providing a mixing system that is expandable from 1 to N (N = 48 or more} channels depending upon the desired configuration of the architecture. Further, using a building block approach, a plurality of systems incorporating this preferred embodiment of architecture 10 may be combined to form a mixing system capable of mixing substantially more than 48 channels.
In the preferred embodiment, the architecture 10 includes master integrated DSP (DSP) device 12 coupled to the plurality of slave integrated DSP (DSP) devices S via DMA bus 28 that is used for sending commands to the slaves S and for moving data between the slaves. The master DSP 12 is provided to perform a number of system host functions including data bus arbitration, downloading of processing algorithms, transferring coefficient variables, and communication to external peripheral devices through RS232, RS422 (ESAM), MIDI ports, and CPU
motherboard 66, for example.
The slave DSP devices S each preferably comprise a DSP device S
connected to an arbitrary number, such as n, of ADC 18a and DAC 18b for processing n channels C. ADCs 18a convert analog input signals 20 to digital samples for processing by the slave DSPs S, and the DACs 18b convert the processed digital samples to analog signals that are combined for output as mixed analog signals 22.

Referring to FIGURE 1 and FIGURE 2, each of the slave DSPs S is preferably adapted to process n channels C, with n ranging from 1-8, depending upon such factors as the number of converters 18, processing power requirements, and system functionality (which includes consideration of requirements for equalization and dynamics processing), for example. Particularly, each of the slaves S is configured with an input line 24 for each ADC 18a coupled thereto.
Processing logic circuitry 26 is coupled to the input lines 24 for performing various prescribed signal enhancement or sweetening functions, such as equalization and compression for instance, on each received digital sample and for placing the resulting data into a selected output memory location, such as channel out internal memory locations M 1-Mn. The processed sample is then mixed (as discussed hereinbelow) for output to the appropriate DAC 18b, which produce the mixed analog output signals 22.
The master DSP 12 sends commands to the slave DSPs S that instruct the slaves DSPs S to transmit the processed input signals to each other via DMA
bus 28, so that each processed input signal is stored in the internal memory location M of each slave S. Thus, if there are four slave DSPs, each slave DSP S and the master DSP will have four processed input signals stored in its internal memory locations Ml-M4. Once each slave DSP S has the results of every processed input signal in its internal memory location M, master DSP 12 can command any combination of the slave DSPs S to mix any of the processed signals to create a mixed digital signal to send to its outputs 30 thereby providing mixed digital signals for D-A
conversion by the DACs 18b, which produce the mixed analog output signals 22.
Referring now to FIGURE 3 of the drawings, a first portion of a data processing path is shown generally at 32. In use, master DSP device 12 is initially activated by an EPROM device (not shown), for example, to prepare the master DSP to receive data from a peripheral device, such as CPU motherboard 66. CPU
motherboard 66 downloads data comprising a set of instructions, known as an executable file, to master DSP 12. Once the master DSP has received the executable file fiom the CPU motherboard 66, master DSP 12 is reinitialized for processing the executable file. CPU motherboard 66 then downloads executable slave DSP files to r the master DSP 12, which the master DSP distributes via DMA bus 28 to the slave DSPs S and writes the files into their internal memory locations M. The master DSP executable file contains instructions relating to such host functions, including data bus arbitration, transferring coefficient variables, and communication to external peripheral devices, while the slave DSP executable files contain instructions such as default coefficient variables. After the slave DSPs S have received their executable files, the slave DSPs S initialize themselves to prepare architecture 10 for running a digital audio signal mixing sequence.
While it is to be understood that a current preferred embodiment of architecture 10 is capable of providing a mixing system that is expandable from i to 48 channels, for illustrative purposes, the following discussion is directed to a four channel system. Referring still to FIGURE 3, analog input signals are first converted to representative digital samples by the ADCs 18a. After conversion, a stream of input data, representative of the digital samples generated by ADCs 18a, are transmitted to input lines 24 of the slave DSPs S for processing. The processing logic circuitry 26 of the slave DSPs S performs various prescribed signal enhancement functions, such as equalization and compression, on each digital sample and places the resulting digital data into the corresponding channel out memory location M 1-Mn.
The data processing path 32 continues as shown in FIGURE 4, wherein after each digital sample is processed by each slave DSP S, master DSP 12 instructs slave DSP S 1 to place its processed digital signal, which is stored in its channel out memory location M1-Mn, on DMA bus 28. Master DSP 12 then latches the data into the memory location M of selected slave DSPs S1-Sn, depending upon the instructions contained in the master DSP's executable file. Master DSP 12 then instructs slave DSP S2 to place its processed signal, which is stored in its channel out memory locations M1-Mn, on DMA bus 28. Master DSP 12 then latches the data from slave DSP S2 into the memory location M of the master DSP and selected slave DSPs S 1-Sn. This process is repeated until the memory locations M of each slave DSP contains the processed signal of each of the other slave DSPs. As there a 1 ~

are only four slave DSPs S in this example, each slave DSP S will have four processed input signals stored in its internal memory locations Ml-M4.
Referring now to FIGURE 5, once the memory locations M1-M4 of each slave DSP S contain the processed signal of each of the slave DSPs S, master DSP 12 generates a signal that instructs the slave DSPs S to mix the processed signals, using mixing logic 34, in various defined combinations to create a plurality of output signals corresponding in number to the number of slave DSPs S. The various combinations of mix are determined by default coefficient variables that were loaded into the memory of the slave DSPs S when their executable files are initially downloaded. Each slave DSP S then sends its mixed output signals to its associated DAC 18b, for providing the mixed analog output signal 22.
This process is continuously repeated, and is only interrupted when master DSP 12 receives new coefficient variables from CPU motherboard 66. When new variables are received from CPU motherboard 66, master DSP 12 places the new variables onto DMA bus 28 and writes the variables into the memory locations M1-Mn of the selected slave DSPs S1-Sn. The new coefficient variables overwrite the default values and modify the audio output signal accordingly.
In FIGURE 9, an overview 95 of the software employed by the present invention is shown. The operating system employs a kernel 80 that includes a task manager 82 for scheduling pre-emptive tasks according to predetermined priorities.
A serial communication module 85 controls the serial transfer of data between CPU
motherboard 66 and other components, such as mixer control board 60. A loader enables the execution of compiled code, and ~a device driver 88 implements the operation of I/O devices, e.g., keyboard 50, mouse 29, and display 54.
Further, a BIOS 84 is included with kernel 80 to control the operation of various subsystems associated with input and output to and from CPU motherboard 66. Also, a file system 83 is included to organize files within the operating environment.
An automation engine 87 interprets a configuration script 89 that defines the type (model) and components (switches and lights) provided on mixing console 76.
Automation engine 87 constantly monitors the communication with the mixing console and controls the operation of CPU motherboard 66, DSP board 62, and mixer control board 60. For example, if the user adjusts a fader switch (not separately shown) that is coupled to mixer control board 60, then automation engine 87 immediately implements code that directs DSP board 62 to process the channel signals in a manner that corresponds to the disposition of the fader switch.
When an automatic mode is enabled by the user, automation engine 87 directs mixer control board 60 to employ its control actuators to move switches to a particular location, illuminate specific lights, and to provide instructions to DSP board 62 for the processing analog input signals in accord with the disposition of the switches and contrnls. Also, when mixer console 76 is in a manual mode, automation engine 87 provides instructions to DSP board 62 that map the processing of the analog signals to the disposition or state of the switches.
A mixer script engine 90 interprets a desktop script 92 and produces a desktop manager 94 for display to the user. An image of a virtual mixer console 96 is produced in the initial window displayed to the user in the desktop manager 94.
An event manager 91 handles the display in the desktop' manager environment, e.g., the position and selection of objects in the image of virtual mixer console 96.
Automation engine 87 implements the highest priority tasks and event manager asserts the lowest priority tasks. In this way, the audio signal processing tasks implemented by mixer console 76 are always given a higher priority than displaying the image of virtual mixer console 96. The highest priority task is associated with user input, which may occur if the user selects objects in the image of virtual mixer console 96 or moves any of the switches. In any case, no more than a 10 millisecond latency occurs before an analog signal is processed by the components of mixer console 76.
Turning now to FIGURE 10, an overview 103 of an automatic training sequence implemented by the present invention is shown. The logic proceeds from a start block to a decision block 105 and determines if there is a switch map and an LED map available for use by automation engine 87. These maps provide addresses that correspond to the actual switches and lights coupled to mixer control board 60.

If true, the logic jumps to an end block and the automatic training sequence logic is terminated.
When the determination at condition block 105 is false, the logic advances to a block 107, which indicates that automation engine 87 polls mixer control board 60 for each address that corresponds to a switch in the mixer console, which is coupled to the control board. The logic moves to a block 109, and a switch map is built that associates each such switch with a corresponding address. The logic flows to a block 111, which indicates that engine 87 polls mixer control board 60 for each address that corresponds to a indicator light coupled to the control board.
The logic advances to a block 113. This block provides for building an light emitting diode (LED) map that associates each indicator light or LED with a corresponding address. Finally, the logic steps to the end block and the automatic training sequence logic is complete.
It is envisioned that the initial training sequence for automatic engine 87 1 S could also be performed manually by the user. For example, the user of mixer console 76 could manually actuate every switch and control disposed on the console, so that automation engine 87 could sense the presence (address) for each device, including the indicator lights.
In FIGURE 11, an overview 102 of the startup sequence of the present invention is shown. Moving from a start black, the logic advances to a block 104 in which a switch map is loaded that identifies the corresponding address for each switch disposed in mixing console 76. The logic moves to a block 106, in which the LED map is loaded, identifying the corresponding address for each indicator light on the mixing console. Next, the logic flows to a block 108. In this block, automation engine 87 interprets configuration script 89. This script indicates a type of feature or function and enables/disables operational features of mixing console 76. For example, a surround sound mixing control may be enabled by configuration script 89, and an equalizer control may be disabled by the script.
The logic then steps to a block I 10, and automation engine 87 creates an automation engine buffer for storing a plurality of values, such as preset configurations. The logic advances to a block 112, wherein mixer script engine interprets desktop script 92, which is employed to define the image presented to the user in the initial window of desktop manager 94. The desktop script determines the virtual switches, lights, and controls displayed to the user in a particular window.
The displayed objects in each window are graphical representations of the corresponding elements of mixing console 76, and show the states of those elements.
Next, the logic moves to a block 114. In this block, the image of the initial window of desktop manager 94 is displayed to the user. In the preferred embodiment, the initial window includes the image of virtual mixer console 96.
However, the initial window may also be configured to provide software controls that enable the user to select a different window that displays the image of the virtual mixer console or additional mixer console features. Finally, the logic flows to an end block and terminates.
Looking now to FIGURE 12, further details of the logical steps implemented in block 108 are provided. Moving from a start block, the logic flows to a block 116, indicating that automation engine 87 sets a type for mixing console 76, which is identified in the configuration script. The logic flows to a block 118 in which the address for each switch and light is set. Moving to a block 120, the logic sets the name for each addressed switch and indicator light.
The logic advances to a block 122, and a maximum value for each switch is set.
The logic then proceeds to a block 124. In this block, the initial value (or state) for each switch and indicator light is set. Typically, the indicator light and switch initial values are zero. The logic moves to a block 126, where each switch and indicator light is designated as either an automatic or non-automatic device. Finally, the logic returns to the main routine.
In FIGURES 13A, 13B, and 13C, an exemplary representation of a desktop script that employed by mixer script engine 90 is provided. The script text may be edited with a text editor, such as Microsoft Corporation's NOTEPADTM. An important feature of the present invention is the use of a script that employs real 1 ~~

language text to define the operation of mixer console 76 and to define the images displayed to the user. Also, since the scripts are interpreted, they may be updated on the fly without requiring any reboot of CPU motherboard 66.
It is envisioned that the user of the present invention may obtain updated configuration and desktop scripts to correct software bugs and to provide new features for mixer console 76. These updates may be provided through a network connection to remote computer 52, or over the Internet, or may be stored and transferred from a physical media, such as a floppy disk.
Script updates are preferably encrypted to prevent unauthorized changes in the operation and control of the mixer console. In the preferred embodiment, RSA
encryption is used and the serial number of mixer console 76 is employed as the public encryption key. In this manner, script updates can be provided that are limited for use with a particular mixer console.
It is also contemplated that an editor may be provided for the user to edit the 1 S desktop and/or configuration scripts - at least to a limited extent. The editor would enable the user to customize the look and feel of the images of the virtual mixer console and enable/disable features of the mixer console 76. Also, it is envisioned that new combinations of features could be developed by the user with the editor.
A look-up table is employed by mixer script engine 90 to build the real language text displayed to the user. The software enables the user to select any one of a plurality of different languages in the look-up table as the real language text.
Also, the software will automatically clip out of range parameters in a script and define hot keys. Additionally, the ordering of the text in a script determines screen overlap for objects and/of windows defined by the text. Further, scripts can be nested in calls from selected objects in the initial window produced for the desktop manager.
In the present invention, the user may employ a "swipe command" to instantaneously change the state of a plurality of switches with the passage of a cursor over objects (virtual switches) displayed in the image of virtual mixer console 96. Preset configurations for controls associated with mixer console 76 may be stored and enabled, or the configurations may be changed.
A plurality of different audio effects may also be implemented by the software. For example, the center point of a plurality of channels for a surround S sound mix may be selected with a software control. Further, two different center points may be selected so that morphing and flyback effects may be produced. A
plurality of addressable software controls may be configured to correspond to a single channel. Also, it is envisioned that a plurality of script templates could be provided to the user for enabling different features and displays.
Alternative embodiments of the present invention may be used for processing audio signals in radio and television studios, live performances, and public address systems. Further, the present invention could be employed to control a plurality of lights in a studio or during a live performance. Thus, the architecture of the present invention provides a system that is software configurable, so that it can be applied to many other applications besides its disclosed use in a mixing console. An application embodying the present invention is easily reconfigurable and upgradeable, since the architecture is readily extensible.
As applied in the above disclosed example, the software configurable characteristics and channel expandability of the present invention provide a clear benefit. In this example, a 48 channel audio mixing console employing the architecture of the present invention and including a master DSP and 24 slave DSPs, with each slave processing 2 channels of digital audio were disclosed. This system thus comprises a software configurable mixing system having 48 inputs and 48 outputs. In the other example discussed above, a 16 channel audio mixing system including a master DSP coupled to four slave DSPs was disclosed, with each slave processing four channels of digital audio signals. This configuration provided a software configurable mixing console having 16 inputs and 16 outputs. It is also contemplated that a system having greater than 48 channels can be achieved by providing a top level, master DSP coupled to two 48 channel audio mixing systems, each comprising a second level, master DSP coupled to 24 slave DSPs. Such a system would be capable of mixing 96 channels.
Although the present invention has been described in connection with the preferred form of practicing it, those of ordinary skill in the art will understand that many modifications can be made thereto within the scope of the claims that follow.
Accordingly, it is not intended that the scope of the invention in any way be limited by the above description, but instead be determined entirely by reference to the claims that follow.
d

Claims (3)

The invention in which an exclusive right is claimed is defined by the following:
1. A real time system for digitally processing and mixing audio signals, comprising:
(a) a computer that includes a memory and a processor;
(b) an analog to digital converter that converts an input audio signal into a corresponding digital signal;
(c) a digital signal processor that processes the digital signal as a function of at least one predefined coefficient, producing a processed signal;
(d) a mixer control that produces a value employed by the computer to control the digital signal processor;
(e) a script that is implemented by the computer, the script defining the operation of the mixer control and the digital signal processor; and (f) a digital to analog converter that converts the processed signal into an output.
2. A real time system for digitally processing and mixing audio signals, comprising:
(a) a computer that includes a memory and a processor;
(b) an analog to digital converter that converts an input audio signal into a corresponding digital signal;
(c) a slave digital signal processor that processes the digital signal as a function of at least one predefined coefficient, producing a processed signal;
(d) a master digital signal processor that calculates the predefined coefficient for the slave processor, the master digital signal processor and the slave digital signal processor being coupled to a data bus;
(e) a mixer control that produces a value employed by the computer to control the master digital signal processor;

(f) a script that is implemented by the computer, the script defining the operation of the mixer control, the master digital signal processor, and the slave digital signal processor; and (g) a digital to analog converter that converts the processed signal into an output.
3. A real time system for digitally processing and mixing audio signals, comprising:
(a) a computer that includes a memory and a processor;
(b) a slave digital signal processor that processes a digital signal as a function of at least one predefined coefficient, producing a processed signal;
(c) a master digital signal processor that calculates the predefined coefficient for the slave processor, the master digital signal processor and the slave digital signal processor being coupled to a data bus;
(d) a mixer control that produces a value employed by the computer to control the master digital signal processor; and (e) a script that is implemented by the computer, the script defining the operation of the mixer control, the master digital signal processor, and the slave digital signal processor, so that the processed signal is provided as an output.
CA002277818A 1997-01-15 1998-01-15 Digital signal mixing architecture Abandoned CA2277818A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US3552097P 1997-01-15 1997-01-15
US60/035,520 1997-01-15
PCT/US1998/000689 WO1998032223A2 (en) 1997-01-15 1998-01-15 Digital signal mixing architecture

Publications (1)

Publication Number Publication Date
CA2277818A1 true CA2277818A1 (en) 1998-07-23

Family

ID=21883210

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002277818A Abandoned CA2277818A1 (en) 1997-01-15 1998-01-15 Digital signal mixing architecture

Country Status (7)

Country Link
EP (1) EP0953226A2 (en)
JP (1) JP2002512747A (en)
CN (1) CN1248356A (en)
AU (1) AU5824598A (en)
BR (1) BR9806751A (en)
CA (1) CA2277818A1 (en)
WO (1) WO1998032223A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2351890B (en) * 1999-07-06 2003-11-19 Sony Uk Ltd Method and apparatus for processing signals
EP1569371A3 (en) * 2004-02-27 2012-10-10 Yamaha Corporation Editing apparatus of scene data for digital mixer
JP4305307B2 (en) * 2004-07-13 2009-07-29 ヤマハ株式会社 Digital mixer capable of programming mixer configuration, mixer configuration editing device, and control application program for controlling digital mixer
US7600105B2 (en) 2004-09-22 2009-10-06 Cyberlink Corp. Systems, methods, and apparatus for providing efficient startup to computers with peripheral devices
CN101262662B (en) * 2007-06-29 2011-02-09 浙江华立通信集团有限公司 Tone generation method and device for 3G and 4G terminal
DE102008037431B4 (en) 2008-10-10 2013-06-06 Lear Corporation Gmbh Method for dynamically configuring a signal conditioner
KR101336373B1 (en) * 2011-08-01 2013-12-04 미쓰비시덴키 가부시키가이샤 Analog input system, analog output system, and analog input/output system
CN104637483A (en) * 2015-02-03 2015-05-20 中国电子科技集团公司第五十八研究所 Multichannel-based low-speed voice coding/decoding system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2569290B1 (en) * 1984-08-14 1986-12-05 Trt Telecom Radio Electr PROCESSOR FOR SIGNAL PROCESSING AND HIERARCHIZED MULTI-PROCESSING STRUCTURE COMPRISING AT LEAST ONE SUCH PROCESSOR
US5212733A (en) * 1990-02-28 1993-05-18 Voyager Sound, Inc. Sound mixing device
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5581480A (en) * 1994-05-10 1996-12-03 Apple Computer, Inc. Method and apparatus for mixing multiple channels of sampled digital audio using a non-linear clipping function

Also Published As

Publication number Publication date
JP2002512747A (en) 2002-04-23
BR9806751A (en) 2001-09-18
WO1998032223A2 (en) 1998-07-23
EP0953226A2 (en) 1999-11-03
WO1998032223A3 (en) 1998-11-19
CN1248356A (en) 2000-03-22
AU5824598A (en) 1998-08-07

Similar Documents

Publication Publication Date Title
US8935444B2 (en) Remote control method of external devices
US7266772B2 (en) Projector connected to a network, a display system, and a method for displaying images and/or image data via a projector connected to a network
US5428730A (en) Multimedia system having software mechanism providing standardized interfaces and controls for the operation of multimedia devices
US7009942B2 (en) Connection setting apparatus
US5908997A (en) Electronic music instrument system with musical keyboard
US5687334A (en) User interface for configuring input and output devices of a computer
US8099666B2 (en) Method and apparatus for providing user interface for multistreaming audio control
US20040014526A1 (en) Interface arbitrator for allowing multiple devices to share physical input/output interfaces and other resources
JPH06266570A (en) Data-processing system and method for loading of digital signal onto processor
US20060086235A1 (en) Electronic musical apparatus system, server-side electronic musical apparatus and client-side electronic musical apparatus
US20060285701A1 (en) System and method for OS control of application access to audio hardware
CN2872754Y (en) Connection setting unit
CA2277818A1 (en) Digital signal mixing architecture
WO2019189959A1 (en) Method, system, and non-transitory computer-readable recording medium for offsetting delay of guest broadcast at live broadcast
WO1999037032A1 (en) Digital signal mixing architecture
US20070168289A1 (en) Electronic musical apparatus, server, electronic musical system, and computer-readable medium including program for implementing control method for the apparatus, the server, and the system
US8046686B2 (en) Method, apparatus and program for setting function to operation control of signal processing apparatus
US20040130565A1 (en) Assist diplay apparatus for use with audio mixer
US20040172144A1 (en) Parameter setting device
US20080125936A1 (en) Method for Controlling Car Computer and Apparatus Thereof
US20050119051A1 (en) Dual-function remote controller capable of manipulating video game and method thereof
US7395127B2 (en) Signal processing apparatus with automatic channel naming and numbering
JP2005323220A (en) Remote commander, control method thereof, program of control method, and recording medium for recording program of control method
JP3177423B2 (en) Peripheral device testing system
GB2620108A (en) An audio signal processing system

Legal Events

Date Code Title Description
FZDE Discontinued