Digitally pitch-shifted pedal steel guitar
09966055 ยท 2018-05-08
Inventors
Cpc classification
G10H7/006
PHYSICS
G10H2220/521
PHYSICS
G10H2210/401
PHYSICS
G10H2210/331
PHYSICS
G10H3/125
PHYSICS
G10H3/186
PHYSICS
International classification
G10H1/06
PHYSICS
G10H1/34
PHYSICS
G10H7/00
PHYSICS
Abstract
The pedal steel guitar has a plurality of strings strung across the body, with at least one multi-element transducer positioned proximate the strings. At least one foot pedal or knee lever, carried by the body and being physically disengaged from the plurality of strings, is coupled to at least one sensor that produces an electronic sensor signal when the pedal or lever is moved. A digital signal processor receives the electronic transducer signal and the electronic sensor signal and operates on the electronic transducer signal in the digital domain. The processor uses the electronic sensor signal to manipulate at least one tonal property of the electronic sensor signal. The digital signal processor produces an audio output. The digital signal processor is programmed to change the manner in which the digital signal processor manipulates the at least one tonal property based on programming information received through a programming input.
Claims
1. A pedal steel guitar comprising: a body having a plurality of strings carried thereon; at least one transducer carried by the body and positioned in proximity to the strings, the transducer producing an electronic transducer signal in response to vibration of at least one of the plurality of strings; at least one foot pedal or knee lever carried by the body and being physically disengaged from the plurality of strings; at least one sensor responsive to movement of the at least one foot pedal or knee lever, the sensor producing an electronic sensor signal; a digital signal processor having inputs receptive of the electronic transducer signal and the electronic sensor signal; the digital signal processor being configured and programmed to operate on the electronic transducer signal in the digital domain and to use the electronic sensor signal to manipulate at least one tonal property of the electronic sensor signal; the digital signal processor being further configured to produce an audio output; the digital signal processor being further configured with a programming input and being further programmed to change the manner in which the digital signal processor manipulates the at least one tonal property based on programming information received through the programming input.
2. The pedal steel guitar of claim 1 further comprising a plurality of foot pedals or knee levers carried by the body and being physically disengaged from the plurality of strings, and wherein the digital signal processor is programmed to change the manner in which at least one of the plurality of pedals or knee levers effects control over the at least one tonal property, based on the setting of a second one of the plurality of pedals or knee levers.
3. The pedal steel guitar of claim 1 wherein the digital signal processor is further programmed to cause the strings to define different chord inversions based on the setting of the at least one foot pedal or knee lever.
4. The pedal steel guitar of claim 1 wherein the strings each have an open state and wherein the digital signal processor is programmed to utilize copedent data stored in a non-transitory computer readable medium comprising information that defines the pitches of the open state of each string and information that defines what pitch changes are made to each string when said at least one foot pedal or knee lever is manipulated.
5. The pedal steel guitar of claim 4 further comprising a copedent control processor that is programmed to operate on said copedent data by performing operations selected from the group consisting of: modifying, saving to memory and recalling from memory the copedent data.
6. The pedal steel guitar of claim 4 further comprising a copedent control processor having a user interface, wherein the copedent control processor is programmed to operate on said copedent data by performing operations selected from the group consisting of: modifying, saving to memory and recalling from memory the copedent data in response to interaction by a user through the user interface.
7. The pedal steel guitar of claim 6 wherein the user interface is implemented by means of a touchscreen display.
8. The pedal steel guitar of claim 6 wherein the user interface is implemented by means of a display on an external device, selected from the group consisting of smartphone, tablet, computer, and a device that communicates with the pedal steel guitar via cable, or wifi.
9. The pedal steel guitar of claim 6 wherein the user interface is controlled by a processor separate from the copedent control processor.
10. The pedal steel guitar of claim 1 further comprising multiple digital signal processors that are programmed to process the multiple digitized signal outputs.
11. The pedal steel guitar of claim 6 wherein one processor is used for both controlling the user interface and manipulating and controlling copedents.
12. The pedal steel guitar of claim 1 wherein the at least one foot pedal or knee lever provides physical resistance and kinesthetic feedback to the player.
13. The pedal steel guitar of claim 12 wherein the at least one foot pedal or knee lever provides feedback that is adjustable in terms of the effort required and of the speed at which the at least one foot pedal or knee lever returns to an at-rest position.
14. The pedal steel guitar of claim 4 wherein the digital signal processor is programmed to output pitches of the open strings, based at least in part on a copedent data such that the pitches are selected from the group consisting of (1) being identical to the physically tuned open string pitch and (2) being different from the physically tuned open string pitch.
15. The pedal steel guitar of claim 1 further comprising a copedent control processor having a user interface through which a user can recall preset copedents, create new copedents, make alterations to existing copedents, save and recall newly altered or created copedents.
16. The pedal steel guitar of claim 1 wherein the digital signal processor is programed to produce output pitches of open strings that can be individually be adjusted to achieve standard pitch.
17. The pedal steel guitar of claim 1 wherein the digital signal processor is programmed to adjust the tuning of the audio output to achieve capo-like functionality in which all pitches can be adjusted either up or down in a predefined multiple of a semitone.
18. The pedal steel guitar of claim 1 wherein the digital signal processor is programmed to adjust the tuning of the audio output to produce output pitches of open strings as well as those pitches altered by means of engaging pedals and/or knee levers can be adjusted either up or down in increments smaller than a semitone to achieve fine tuning adjustments.
19. The pedal steel guitar of claim 1 further comprising a plurality of foot pedals and knee levers configured such that when engaged simultaneously the plurality of foot pedals and knee levers can be made to act in one of an additive fashion and in a priority fashion, wherein the additive fashion is characterized in that if a first one of said plurality of foot pedals and knee levers acting alone raises or lowers the pitch of a particular string's output by a first interval and a second one of said plurality of foot pedals and knee levers acting alone raises or lowers the pitch of the same string's output by a second interval, then fully engaging said first and second foot pedals and knee levers simultaneously will result in the pitch being raised an interval equal to the arithmetic sum of the first and second intervals; and the priority fashion being characterized in that if a first one of said plurality of foot pedals and knee levers acting alone raises or lowers the pitch of a particular string's output by some interval and a second one of said plurality of foot pedals and knee levers acting alone raises or lowers the pitch of the same string's output by second interval different from the first, then fully engaging said first and second of said plurality of foot pedals simultaneously will result in the pitch being changed by the interval of whichever of the first and second plurality of foot pedals and knee levers has been given priority.
20. The pedal steel guitar of claim 2 wherein the first of said plurality of pedals or knee levers changes the behavior of the second of said plurality of pedals or knee levers as follows: while one said plurality of pedals or knee levers when engaged alone might raise or lower a particular string or strings, each by a certain interval, when a second of said plurality of pedals or knee levers is engaged, the first one said plurality of pedals or knee levers will affect a different string or strings and/or will affect them by different intervals.
21. The pedal steel guitar of claim 1 wherein the digital signal processor is programmed to produce one or more intermediate pitch intervals, in multiples of semitones, that are defined within a larger interval between a starting pitch of a string and an ending pitch such that as the pedal/knee lever travel approaches an intermediate point, the digitally shifted pitch is attracted to said intermediate pitch such that the output pitch can be heard to temporarily but accurately rest on said intermediate pitch, achieving a complex half-pedal capability.
22. The pedal steel guitar of claim 1 wherein the at least one foot pedal or knee lever is configured to effect a half-pedal capability on more than one string.
23. The pedal steel guitar of claim 21 wherein the digitally shifted pitch is attracted to more than one intermediate pitch such that the output pitch can be heard to temporarily but accurately rest on more than one intermediate pitch, achieving a complex multi-position half-pedal capability.
24. The pedal steel guitar of claim 21 wherein the digitally shifted pitch is attracted to an intermediate pitch lower than the at-rest pitch and then changes direction to a higher pitch than the intermediate pitch or is attracted to an intermediate pitch higher than the at-rest pitch and then changes direction to a lower pitch than said intermediate pitch, achieving a complex multi-directional half-pedal capability.
25. The pedal steel guitar of claim 18 wherein the digitally shifted pitches chosen for open strings and for strings altered by pedal or knee lever action are microtonal in nature, that is, other than whole multiples of semitones.
26. The pedal steel guitar of claim 5 wherein an external connector is used to communicate with an external device to export or import copedent data for saving and use.
27. The pedal steel guitar of claim 1 wherein an external connector is used to communicate with software running on an external device such that the external software can receive physical open string pitch data, copedent data which includes virtual open string pitch data and pedal and knee lever change data, along with physical strings' pre-pitch-shift pitch output data, and pedal and knee lever position data, such that the external software can automatically compute and record tablature in real time as the instrument is played.
28. The pedal steel guitar of claim 1 wherein each separate audio output signal is equalized and/or gain-adjusted separately and independently.
Description
(1) Different kinds of pickups may be used as long as each string is given a separate audio channel. The drawings here assume magnetic pickups.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11) The next several figures show a series of mockups of a touchscreen which is used by the player to interact with the software in order to configure various musical aspects and capabilities of the instrument.
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
DESCRIPTION OF THE PREFERRED EMBODIMENT
(25) By outward appearance, the digitally pitch-shifted pedal steel guitar looks similar to a traditional instrument, however, there are numerous technical differences. Thus as seen in
(26) However, unlike the traditional instrument, the foot pedals and knee levers are not mechanically coupled to cause physical stretching or loosening of the strings. Indeed, in the digitally pitch-shifted pedal steel guitar instrument the strings do not need to be physically stretched or loosened to change tunings. That is all done electronically and without the need to change string tension.
(27) A touchscreen 102 is provided to allow the user to change settings within the instrument and thus change how the foot pedals and knee levers perform. The placement of the touchscreen 102 in
(28) Also, the multi-element pickup 28a is a more sophisticated pickup that can obtain pitch information from each string individually. One embodiment of a suitable pickup 28 is shown in
(29) The digitally pitch-shifted pedal steel guitar provides a group of external connections, shown in
(30) Pedals and Levers Operate Electronically, Yet Retain Familiar Feel
(31)
(32) Referring to
(33)
(34) The manner of mounting the cross rod 58 to the roof of the instrument body 50 is shown in
(35) Digital Signal Processing of Each Individual String
(36) In the preferred embodiment of the digitally pitch-shifted pedal steel guitar, all strings are supported by a single bridge, as there is no need for independently moving bridges as in the case of a traditional instrument. As each string vibrates, its vibrations are captured by its associated pickup or transducer as one analog signal for each string. The analog signal for each string is transmitted through a cable connection to its associated ADC. Each separate channel of, now digital, audio signal will be acted upon by the pitch-shifting DSP processor downstream.
(37) Referring to
(38) Meanwhile, output data (f) from the Hall Effect sensors 70 on each of the pedals and knee levers are read by the Microcontroller (MCU) 94. The MCU 94 calculates pitch shift values and sends them via messages (e) to the DSP processors 92. The DSP processors alter the pitches of the appropriate signal channels. The separate digital signals are summed and sent as a single digital signal (c) to the digital to analog converter (DAC) 96). Though that is what is shown in
(39) From there, it can be output through a standard TS jack to an audio amplifier (not shown). In addition to the single summed output signal, the several digital signals are also sent separately (d) to a USB output port 98. The DSP processors can also send data (e.g., pitch tracking data, and pedal/knee lever travel data) (e) to the MCU for tuning and string calibration, and pedal knee lever sensor calibration.
(40) The MCU communicates (h) with the touchscreen controller 100, which in turn communicates (g) with the touchscreen 102 to allow the user to interact with the main program running on the MCU. Saved copedent data is saved to and read from EEPROM 104.
(41) Note: All components may be housed on the same circuit board or the system may be modularized with different components on different circuit boards connected by cables.
(42)
(43) Also as discussed above, the output of the pitch shifting process 106 can be supplied in digital form (d) via a suitable interface, such as through a USB port 98. These digital domain signals can retain the data for each string as a separate digital channel, thus making it possible to process the data from each string separately and possibly in a different manner.
(44)
(45)
(46) In
(47)
(48) At the start of this endless loop, the WorkingStringArray (an array of length equal to the number of strings) is initialized, each position in the array is loaded with the sum of the following values for the corresponding string: 1. The difference between the physical open string pitch and the copedent's virtual open string pitch 2. The value for the capo functionality 3. The value for tuning adjustment 4. The value for standard string pitch calibration
These values are needed to achieve fully corrected and playable virtual open string pitches dictated by the copedent in effect.
(49) After initialization of the WorkingStringArray, the Pedal/Lever Loop is entered at steps 128 and 130. For each pedal/lever, the corresponding sensor is read at step 140. If the sensor's output is within a threshold of the last value read for that sensor (step 142), the loop moves on to the next pedal/lever (step 144), since the pedal/lever must not have moved significantly. Otherwise, if the difference between the output value and the last value is larger than the threshold (at step142), then the value is checked to ensure that it fall within the range of the maximum and minimum values stored for that pedal/lever's travel (if the value is within a threshold of the maximum, it is set to that maximum value; if it is within a threshold value of the minimum, it is set to that minimum). Then, the last value for that string is updated with the newly read value.
(50) Embedded within the Pedal/Lever Loop is the String Loop (beginning with step 150), which is concerned with adjusting the values held in the WorkingStringArray. In the String Loop, for each string, if there is no change dictated by the copedent for that string and pedal/lever combination (step 154), the mapped Value variable is set to zero at step 156. If there is a change dictated by the copedent for that string and pedal/lever combination, then the mapped Value variable is set, at step 160, to a value mapped from the point in the pedal/lever's minimum to maximum travel range into a range from zero to the number of semitones up or down dictated by the copedent for that pedal/lever and string combination.
(51) The value of the mapped Value variable is then added, at step 158, to the value originally set in the WorkingStringArray at the beginning of the endless loop. This effectively sets a value that combines those summed values with the momentary pitch change calculated from the pedal/lever's travel.
(52) The program proceeds to the next string in the loop, checks whether any change is dictated by the copedent for that string and pedal/lever combination, then sets the mapped Value variable to either zero or a mapped value, and adds it to the WorkingStringArray for that string.
(53) By the time all pedal/levers and strings are considered by the two loops, the WorkingStringArray will contain one value for each string. Each value represents the sum of all variables needed by the DSP to shift the each string's channel's pitch for that moment in time.
(54) With all the strings' values updated at the end of one iteration of the Pedal/Lever Loop, the main control program proceeds to a new, different loop, at steps 132 and 134. For each position in the WorkingStringArray, that is, for each string, the value in the WorkingStringArray is encoded into a message at step 136 containing the number of the string/channel and the value in the array (in the preferred embodiment, the Open Sound Control protocol is used for encoding and decoding these messages). The message, sent via some standard communication protocol capable of addressing multiple peripherals (such as SPI), is sent to the DSP processor handling that particular channel. The DSP processor decodes the message and adjusts the current pitch of the particular channel addressed in the message, by the amount sent in the message.
(55) Processing then returns to the main endless loop at step 126 where the WorkingStringArray is refreshed and the Pedal/Lever Loop is entered.
(56) For a more complete understanding of how the digital pedal steel guitar may be implemented, computer code excerpts and a pseudocode description is provided at the end of the disclosure. Included with these code excerpts is a description of the variables, functions and code used by the main control loop.
(57) Discussion of How Copedents Work
(58) To understand how the digitally pitch-shifted pedal steel guitar instrument affects different tunings, an understanding of copedents will be helpful.
(59) As described in
(60) The conventional names for pedals are as follows. For a standard E9 copedent, shown in
(61) In the cells at the intersections of strings (rows) and pedals/levers (columns), the number of half-steps that particular pedal/lever should raise or lower the pitch of that particular string and/or the actual pitch name achieved by engaging the pedal/lever.
(62) If a cell is empty, the pedal or lever does not affect that string. If a pedal or lever does affect a string, there are two commonly used ways of denoting that fact in a copedent: either the note name of the altered pitch is written in the cell or the number of semitones up or down is written in the cell. Therefore, if a cell contains a note name, the string will move up or down to that note's pitch. Alternatively, if a cell contains a signed numeral or one or more plus signs or negative signs, for example, +2 or 1 or (++ or ), the string will move up or down that number of semitones. Sometimes, both are used, e.g., ++A. Note that, in the particular copedent illustrated in
(63) A copedent is realized in a traditional pedal steel guitar in the physical realm by mechanical means (i.e., rods and bellcranks and changers, aka machinery). As the machinery is engaged via pedals/levers, the tension and pitch of one or more strings affected by a pedal/lever will change. Each string will change continuously up to or down to the pitch shown in the cell of the copedent table where that string and pedal, or lever, intersect. Note that
(64) By contrast, the digitally pitch-shifted pedal steel guitar realizes copedents in electronic hardware and software. As pedals/levers are engaged, the software receives data from sensors about the pedals' and knee levers' movements. It uses those data in conjunction with the software copedent currently in force to calculate values to be used to control real-time digital signal processing (DSP), and sends these values to the processors to accomplish that processing.
(65) This transfer of copedents from the physical realm to the software realm further allows copedents to be created, edited, saved, and recalled, and allows copedents which are impossible to realize in the traditional pedal steel guitar. For example, in the traditional pedal steel guitar pitch change intervals are always limited by how far a string could be tightened before breaking or loosened before losing its tone. Another limit of the traditional pedal steel guitar is the number of strings that might be changed with one pedal or knee lever, since the resistance of strings or return springs is cumulative. And so, more generally, the present invention is a novel method of easily implementing and changing an essentially infinite number of copedents.
(66) In the digitally pitch-shifted pedal steel guitar, the machinery of a traditional pedal steel guitar is replaced by a system of electronic components including sensors, audio ADC and DAC, DSP, and control processor (e.g., a micro-processor), along with software in both the DSP and control realms. It is this control realm of software (copedent-related user interface and control) that is the present invention.
(67)
(68) User Interface of the Digitally Pitch-Shifted Pedal Steel Guitar
(69) The processor(s) of the digitally pitch-shifted pedal steel guitar operate in accordance with a main control program, the details of which are discussed below. In the preferred embodiment, the main control program presents a user interface through which a user/player may enter data and adjust various aspects of the instrument and the main control program. If desired, the user interface can be displayed upon an LCD display panel mounted to the surface of the instrument. Alternatively, the user interface can be displayed upon a separate device, such as via an app running on a tablet display device (e.g., iPad) or smartphone. To give a flavor of the types of things the user can do via the user interface, the following examples are provided. It will be appreciated that a variety of features can be implemented on the digitally pitch-shifted pedal steel guitar, and the following examples are not intended to be exhaustive.
(70) Manipulating Copedents
(71) With regards to copedents, as described earlier, the user may enter data to create new copedents or make changes to existing copedents. That is, through the user interface, the user/player may recall, delete, edit, save, and use in playing, any number of virtual copedents. Therefore, through the user interface, the user is able to program the virtual open string pitches as well as to program the individual pedal and lever changes to each string's output pitch.
(72) The way different pedals/levers interact when engaged simultaneously, e.g., splits and meta-splits as well as half-pedals (including multiple stop half-pedals and multidirectional half-pedals can be programmed as well through the user interface.
(73) The user interface is also used to make other musical adjustments to the instrument such as: 1. small tuning adjustments to all strings or to one or more strings individually 2. a virtual capo to bring all strings up or down equally.
In a traditional pedal steel guitar, in order to change copedents, the musician needs to make physical changes and/or adjustments to pedals, rods, changers and may even need to change the gauge of strings used.
(74) In contrast, in the present disclosure, through the use of a menu, the user is able to switch between saved copedents quickly. Alternatively, banks may be used. Each bank displays multiple saved copedents and the user can switch through different banks (
(75) Again, copedent changes in the present invention may be more complex than in the case of the traditional pedal steel guitar in that they may include pitch change intervals impossible to achieve through string tension changes, priority and additive splits, meta-splits, and multi-position and multidirectional half-pedals.
(76) In this embodiment of the present invention, the user interface is described in some detail here: A user is presented with several options, including but not limited to: Physical open string tuning Physical open string calibration Pedal/knee lever (sensor) calibration Capoing Fine tuning adjustment Creating, editing, saving, recalling, and using copedents
(77) Choosing to tune the physical open strings, when the user selects the corresponding item from the menu, the software is put in a mode which waits for input from the separate transducers. As the strings are plucked, the actual pitches of the strings sounded are tracked and displayed on the UI (
(78) Another aspect of the UI is the option to calibrate open string pitches to standard tuning. After the user tunes the physical strings, this mode can be used to make automatic adjustments to the virtual open string pitches so that they each remain precisely at the copedent's intended pitch even if the physical string goes slightly out of tune over time or while playing. In this mode, the software precisely compares the actual physical string pitch with the pitch to which the user tuned the physical string. If the string has loosened slightly and is, for example 4 cents flat from the intended physical open string pitch, then enough pitch correction will be added to the workings of the main program. If another string is slightly sharp, its channel can be compensated independently and differently during the playing of the instrument as the main program calculates all DSP control. That is to say, these values will be used as a starting point for all pitch-shifting calculations during the continuous processing to control the DSP pitch-shifting during the playing of the instrument.
(79) Sensor Calibration
(80) Should sensors be employed on pedals and knee levers that from time to time require recalibration of the beginning and ending points of their range of motion, the user, choosing to calibrate pedal/lever travel, selects the corresponding item from the menu. The software is thereby put in a mode which waits for input from the engaging of pedals and knee levers (
(81) Setting Up a Capo
(82) Choosing to set a capo value, the user selects the corresponding item from the menu. The software is thereby put in a mode which waits for input from the user in the form of a positive or negative integer value, which will be used as the number of semitones up or down from the virtual open string pitches (
(83) Making Fine Tuning Adjustments
(84) Choosing to make a fine tuning adjustment (for example, in order to be in tune while playing with others who are not necessarily tuned to standard A440), the user selects the corresponding item from the menu. The software is thereby put in a mode which waits for input from the user in the form of some pitch adjustment; e.g., cents up or down (
(85) Copedents
(86) Choosing to recall an existing, stored copedent and use it to play, the user can choose from a menu or scroll list of copedents stored in non-volatile memory. Then, choosing to Play (
(87) Choosing to create a new copedent, the user can choose an existing, stored copedent that is similar to the copedent desired from a menu or scroll list of copedents stored in non-volatile memory. The user can then edit the values of this copedent and save it as a new copedent (
(88) To edit a virtual open string pitch, the user touches the open string value in the left column. This presents a slider, much like the one used for capo editing, which can be used to raise or lower the pitch of the virtual open string.
(89) To edit a pedal/lever change, the user touches a cell (the intersection between a string's row and pedal or lever's column). This presents a slider, much like the one used for capo editing, which can be used to raise or lower the pitch of that particular string to be achieved when engaging the pedal or lever.
(90) Once all changes are made, the user can touch the Save button so that the newly created copedent can be stored in non-volatile memory for later recall and use. Alternatively, the user can touch the Cancel button to discard any changes made.
(91) Saving Copedents for Later Recall
(92) Once copedents are saved, they may be grouped in a bank of several copedents to afford quick changes which might be used during a performance. While playing, a screen like that seen in
(93) Control Program of the Digitally Pitch-Shifted Pedal Steel Guitar
(94) As seen in
(95) In string calibration or tuning mode, the digital audio signals (k) are received by the pitch-tracking function 110. Pitch-tracking data (j) are sent to the micro-controller (MCU) (10) via some kind of serial message (e.g., MIDI, Open Sound Control, etc.). These data are ultimately displayed to the user by being sent as flat, sharp, or in-tune note information (m) to the touchscreen controller 100 which is in charge of communicating to the touchscreen 102 via (g). The user can tune the physical open strings until the touchscreen indicates that the pitches coming into the pitch-tracking function are in tune.
(96) In pedal calibration mode, as the user engages the pedals and levers, the minimum and maximum values of the sensors (70), corresponding to the at-rest position and the fully engaged position of the pedals and levers, are sent (f) to the MCU. The MCU saves these position data in memory, also sending them (o) via some serial protocol (e.g., SPI, I2C, I2S, etc.) to EEPROM (104) for longer-term storage, so that upon the next restart, the previous calibration values can be read (p) and reused.
(97) In edit mode, the user interacts with the touchscreen (102). User touch data (q) is sent to the touchscreen controller (100) which translates as necessary and sends that data (n) to the MCU. The MCU will record the user's changes and send the data (o) to EEPROM for longer-term storage. This data includes copedent values, virtual capo values, and virtual tuning adjustments.
(98) In copedent recall mode, the user again interacts with the touchscreen by requesting to recall a copedent from EEPROM. The request through (q) and (n) is managed by the MCU and the data is loaded from EEPROM via (p) into the MCU's memory.
(99) In play mode, the transducers (28a) send their analog signals (a) (of strings played open or fretted/barred) to the ADCs (90). The digital output signals (k) are received by the DSP processors' pitch-tracking function (110). The DSP processors' pitch-shifting function (106) receives the pitch tracking data (I) along with the actual digital audio signals (b) themselves.
(100) As the player engages the pedals and levers, the MCU, based on the copedent currently in effect, and on incoming pedal and lever sensor data (f), calculates the amount of pitch-shifting necessary for each channel. The results of those calculations are sent along with their corresponding channel, encapsulated in messages (e.g., MIDI, Open Sound Control, etc.) via (r) to the pitch-shifting function (106) in the DSP processor. The pitch-shifting function, in real-time, alters the digital audio signals which are then sent: 1) via (e) to a function that sums the signals into one digital signal (c) which is then sent to a digital to analog converter (DAC) (96). The output of this DAC (h) is output to a standard guitar plug. This can be, for example, amplified by a standard guitar or pedal steel guitar amplifier. 2) via (d) to a module or function (98) to encapsulate the separate channels' signals using a USB protocol for audio. This output (i) can be used downstream (e.g., for input into an audio interface, for recording, for effects, etc.)
(101) Note: All components may be housed on the same circuit board or the system may be modularized with different components on different circuit boards connected by cables.
(102) Terms Used in This Document
(103) As used herein,
(104) Pedal Steel Guitar (PSG) refers to an instrument which normally comprises a body with one or more necks of strings, supported by legs, and with pedals and knee levers, normally played by picking the strings and fretting or stopping the strings with a bar and by engaging the pedals and knee levers which alter the strings' pitches. Traditional Pedal Steel Guitar (TPSG) refers to a pedal steel guitar, developed since about the middle of the 20.sup.th century which alters its strings' pitches by means of the physical stretching and loosening of the strings. Pedal is used to refer to either a pedal or lever used to alter the pitch sounded by one or more strings. Copedent refers to the concept comprising two kinds of musical information: the pitches of the open (i.e., unfretted/unstopped and therefore unaltered) strings of a pedal steel guitar; and a description of what pitch changes are made to one or more strings by the engaging of each pedal. Also often referred to as setup. Machinery refers to the mechanical components housed on the underside and at the bridge end of the body of a traditional pedal steel guitar. Machinery includes metal cross rods, bellcranks, pull rods, springs, roller nut (a traditional pedal steel guitar nut has one roller per string so that changes in string tension can be evenly and continuously distributed over the entire length of the string, eliminating hysteresis to some degree), bridge, one for each string, which rolls in the direction of the nut (loosening the string) or away from it (tightening the string), and changers (assemblies of fingers or sliding levers which affect the movement of the bridges). Digitally Pitch-Shifted Pedal Steel Guitar (DPS2G) refers to a pedal steel guitar in which the present disclosure would replace the machinery of a traditional pedal steel guitar such that the resulting pedal steel guitar would sound precisely the way a traditional pedal steel guitar sounds and would be played by the musician in precisely the same way as a traditional pedal steel guitar is played. However, the DPS2G would employ this novel method for the controlled altering of string pitches. Analog to Digital Converter or ADC is an electronic processor or system that converts an analog signal to a digital signal. Digital to Analog Converter or DAC is an electronic processor or system that converts a digital signal to an analog signal. Micro-controller or MCU is a small computer, often with input/output connections for acquiring or sending data or signals, usually running on a small integrated circuit. Printed Circuit Board or PCB refers to a board made of an insulating substrate with etched electrically conductive tracks and pads to support and connect electronic components. DSP means digital signal processing. Though other kinds of signal processing are possible, the present disclosure employs DSP for the purpose of the controlled shifting of musical pitches. User refers generally to the player of the instrument since it is assumed that the player will also be the person interacting with the DPS2Gs software by means of its user interface. User Interface refers to a method that affords a user to ability to recall, edit, store, and switch between different copedents or setups as well as make other alterations such as slight adjustments to the virtual tuning of different strings, capo all strings up or down a specified amount, etc. Physical open string refers to a physical string that is neither barred/fretted nor altered by a pedal or lever and whose frequency is the input to a transducer. Virtual open string refers to the pitch of the string when neither barred/fretted nor altered with a pedal but whose signal has passed through the pitch-shifting processor. Based on the virtual copedent (see below), in effect the virtual open string pitch may be different from the physical open string pitch. Virtual copedent is like a copedent (see above) but comprises virtual open string pitches along with pedal/lever changes that might alter the pitch further. Crosstalk is the unintended capture by a pickup or transducer of an adjacent or nearby string's signal. Tablature refers to a somewhat standardized notation used by pedal steel guitar players of what is played on a pedal steel guitar and how; that is, a way to notate which strings are played at which frets with which pedals and knee levers engaged. Tabbing refers to the act of recording in tablature what is played on a pedal steel guitar. User and Player and Musician are used interchangeably.
Pseudocode:
(105) This pseudocode assumes a touchscreen user interface and a micro-controller with two functions: 1. control of the touchscreen user interface 2. the main control program, the brains of the pedal steel computation which entails: taking as input pedal and knee lever sensor output, using those to compute pitch-shifting control values, and sending those values encoded in messages to the one or more DSP processors.
(106) This pseudocode does not go into detail on other aspects of the program having to do with calibration and editing copedents and interfacing with other external devices and data. Rather it concentrates on just that data acquisition, computation, and messaging which is the present disclosure, the realization in software of a pedal steel guitar copedent for use in a digitally pitch-shifted pedal steel guitar.
(107) The code has two main modes: UI (in which the user can interface with the touchscreen and through it, the system) and PLAY (in which the user can play the instrument with all values in effect).
(108) The main loop checks the mode. If it is PLAY, the controller takes input and computes pitch-shifting values and sends messages to the processors. If the mode is UI, the code controls the touchscreen, sending values to and receiving values from the user, reading and writing values to EEPROM, etc.
(109) The code assumes that the physical open strings have already been tuned by the user to certain prescribed pitches.
(110) Note: Values for pitch adjustments are presented to the user in the user interface as either multiples of semitones or as cents, depending on what musicians generally expect (e.g., as semitones when thinking about non-microtonal open string pitches, capo values, and pedal/lever changes and as cents when tweaking the tuning of the instrument). When used in the actual code for calculations, all values are converted to either one or the other.
(111) Other modes are possible. For example:
(112) 1. UTILS: mode: wherein the software allows the user to access utilities used by the software and hardware; e.g., running diagnostic tests. 2. SHARE mode: wherein the software, via an external connection, e.g., USB, can export or import saved copedent data as a file for sharing among users. 3. TAB mode: wherein the software, via an external connection, e.g., USB, can output all data necessary for an external device running external software to translate said data into standard pedal steel guitar tablature in real time.
Variables
(113) Note: values for those variables listed here may be set at different locations in the code, but their scope is global) StandardPitchAdjustmentArray: array to hold the number of cents up (positive) or down (negative) to adjust each physical open strings' pitches to reach a standard pitch CapoValue: value in semitones up or down TuningAdjustmentValue: value to hold the number of cents up or down to adjust the entire tuning of all strings to a tuning different from standard pitch (e.g., for the purpose of being in tune with other instruments) WorkingArray: array to accumulate up all values (for each string, during each iteration of the main loop) that go into the calculation of the pitch-shift value to be sent to the DSP PedalMinArray: array to hold the average minimum value corresponding to the output of a sensor on a pedal or knee lever at rest PedalMaxArray: array to hold the average maximum value corresponding to the output of a sensor on a pedal or knee lever at its fully engaged position LastValueArray: array to hold the last read sensor value for each pedal/lever so newly read values can be compared for incremental changes PedalChangeThreshold: value (expressed as a percentage) used to determine if a sensor output value has changed enough since the last time it was read to warrant further computation PedalMinMaxThreshold: a value (expressed as a percentage) used to determine if a sensor output value is within a certain range of a PedalMinArray or PedalMaxArray value CopedentOpenStringDifferentialArray: array to hold values in semitones up or down needed to adjust the physical open strings' pitches to reach the virtual open strings' pitches needed for the copedent CopedentPedalStringChangesArray: two-dimensional array to hold values in semitones up or down which each pedal/knee lever will change each string's pitch Copedent: struct or object which holds values for virtual open strings' pitches and a CopedentPedalStringChangesArray CurrentCopedent: a Copedent struct or object which is the copedent currently being used in playing the instrument CALIBRATIONS (via user interaction):
(114) TABLE-US-00001 CalibratePedalSensors /*** Set PedalMinArray and PedalMaxArray values ***/ /* User puts system into CalibratePedalSensors mode. * Then, as the user engages each pedal and lever several times * in turn, the min and max output values from sensors * are read. The average min and max for each pedal/lever * are stored in the PedalMinArray and PedalMaxArray. */ CalibrateOpenStrings /*** Set StandardPitchAdjustmentArray values ***/ /* User puts system into CalibrateOpenStrings mode. * Then, as the user picks each string the pitch is tracked and * compared against the standard A440-based pitch intended for * that physical string. The differences are calculated and stored * in the StandardPitchAdjustmentArray. */ SET-UP (available via user interaction):
(115) TABLE-US-00002 EditSaveCopedent /*** Alter existing copedent and save as a new user-defined copedent ***/ /* User puts system into EditSaveCopedent mode. * Then, via the touchscreen display, the user changes virtual * open string pitch values and then the desired pitch changes * to be achieved when each pedal/lever is engaged. * The newly edited copedent can then be saved. */ LoadCopedent /*** Recall user-defined copedent and load into memory for use ***/ /* User recalls a saved copedent to be loaded by the system. * This sets the CopedentOpenStringDifferentialArray with values * arrived at by comparing the physical open string pitches and * the recalled copedent's virtual open string pitches. */ SetCapoValue /*** Adjust tuning of strings with a virtual capo ***/ /* User enters a number semitones to which virtual open-tuned * string pitches should be shifted. Zero is no shift. A positive * number is an upward pitch shift, a negative number is downward. * The value is stored in the variable CapoValue. * This value is used for all strings. */ SetTuningAdjustmentValue /*** Adjust tuning of strings in cents ***/ /* User enters a number of cents by which virtual open tuned * string pitches should be shifted. Zero is no shift. A positive * number of cents is an upward pitch shift, a negative number * is downward. This value is stored in the variable TuningAdjustmentValue. * This value is used for all strings. */
Pseudocode of Main Copedent and Control
(116) TABLE-US-00003 /** Initialize LastValueArray **/ FOR pedal = 1 to NumberOfPedals SET LastValueArray[pedal] = 0 END FOR Endless Loop:
(117) TABLE-US-00004 /** Initialize WorkingArray **/ FOR string = 1 to NumberOfStrings WorkingArray[string] = CapoValue + TuningAdjustmentValue + StandardPitchAdjustmentArray[string] END FOR FOR pedal = 1 to NumberOfPedals inValue = READ pedal sensor // If sensor value has not changed (that is, pedal/lever // has not moved enough to warrant a change, do nothing. // Otherwise, check, store, and use IFabsoluteValue(inValueLastValueArray[pedal])> PedalChangeThreshold // If value is near min or max of pedal/lever travel range, // force value to the limit (min or max) of that range IF inValue is within threshold range of PedalMinArray[pedal] inValue = PedalMinArray[pedal] END IF IF inValue is within threshold range of PedalMaxArray[pedal] inValue = PedalMaxArray[pedal] END IF // Store as last value for comparisons against future readings LastValueArray[pedal] = inValue // If a pedal affects a string, compute and send // pitch adjustment value to DSP FOR string = 1 to NumberOfStrings // If a change is required by the copedent for // the particular combination of pedal and string ... IF CopedentPedalStringChangesArray[pedal][string] != 0 // map inValue into the range from the pedal's minimum // maximum values SET mappedValue = ( (inValue PedalMinArray[pedal]) * (CopedentPedalStringChangesArray[string][pedal]) / (PedalMaxArray[pedal] PedalMinArray[pedal]) ) ELSE SET mappedValue = 0 END IF SET WorkingArray[string] = WorkingArrayString[string] + mappedValue END FOR END IF END FOR // Once all values are calculated, send control messages to DSP processor(s) FOR string = 1 to NumberOfStrings value = WorkingArray[string] dspControlValue = convert(value) ** Send control message to DSP with string and dspControlValue END FOR END loop ** Value needed by DSP algorithm to shift pitch of digitized string's signal
Copedent Realizations
(118)
(119) A typical E9 copedent is shown in the center of the figure, labelled Conceptual Copedent.
(120) Above the copedent table, the figure shows how, in the case of the traditional pedal steel guitar, that copedent is realized in the physical realm by means of physical machinery; i.e., rods, bellcranks, changers, etc. In the traditional pedal steel guitar, the actual pitch changes are realized by using the physical machinery to physically stretch and loosen strings.
(121) Below the copedent table, the figure shows how, in the case of the present disclosure, the copedent is realized by means of software and the pitch changes are realized by signal processing which is controlled by the copedent software.
(122)
(123) b. Legs c. Barrel connector jack to connect an AC to DC power adapter d. guitar jack e. Type B USB jack f. Micro USB jack
(124) In the preferred embodiment, housed in the right end plate (a) of the instrument is a standard barrel connector (23), e.g., 9.5 mm length, is used to accept DC power, e.g., from a standard wall adapter. This is used to power the active pickups and all electronics: the MCU, the sensors, the processors, and the ADCs and DAC, etc.
(125) Also housed in the endplate is a standard jack (25) to be used for the summed analog audio output for amplification or recording.
(126) Also housed in the endplate is a Type-B USB jack (27) to output separate digital audio channels (one for each string, after processing) for any use, e.g., post-processing or recording.
(127) The USB out can also carry other data sent by the MCU. For example, pedal and knee lever position data, current copedent data, physical open string pitch data, and virtual open string pitch data may be sent to a personal computer or other external device running software. One example of such software is a real-time auto-tablature program. In this case, after starting the program on the external device and software handshaking occurs between the that program and the MCU, as the player plays the instrument, this data can be used to determine the nearest fret at which strings are barred/fretted and which pedals and knee leers are engaged. This data can be used to create tablature for the pedal steel guitar.
(128) The Micro USB jack (29) can be used to upgrade firmware on the MCU and DSP processor(s). It can also be used by an external program to download and upload saved copedents, e.g., for use in sharing between musicians.
OTHER EMBODIMENTS
(129) A further embodiment of the present invention may use only one DSP processor to pitch shift multiple channels received from the ADCs.
(130) A further embodiment of the present invention would have any number of strings and associated transducers, ADC and DAC channels, associated channels of pitch-shifting DSP, and any number of pedals and knee levers.
(131) A further embodiment of the present invention would have sensors attached directly to the pedals, which are in turn attached to the pedal bar/rack such that pedal rods would not be necessary. The sensors' electrical connections could be run from the pedal bar up to the circuit boards under the body of the instrument.
(132) A further embodiment of the present invention would have sensors attached to the pedals directly with the pedals being free-standing.
(133) A further embodiment of the present invention would use piezo-electric pickups as the transducers.
(134) A further embodiment of the present invention would use optical pickups as the transducers.
(135) A further embodiment of the present invention would use potentiometers as sensors for pedal travel, with each potentiometer's shaft coupled to a pedal or lever's cross rod, either directly or indirectly through a U-joint. As a pedal or knee lever is engaged and a cross rod turns, it would move the shaft of a rotary potentiometer and a variable voltage could be read from the potentiometer. The potentiometer would continuously send its variable output through the output wire to the micro-controller (MCU). A spring would have enough tension to give kinesthetic feedback in the form of resistance to the player and to return the pedal and potentiometer to their at rest positions.
(136) A further embodiment of the present invention would use potentiometers as sensors for pedal travel, with each potentiometer's shaft coupled indirectly to a cross rod through a rack and pinion assembly. As a pedal or knee lever is engaged, the pedal rod would move downward, transferring its energy to a rack and pinion assembly which in turn rotates the potentiometer, with no deflection of its shaft. The potentiometer continuously would send its variable output through the output wire to the micro-controller (MCU). A spring would have enough tension to give kinesthetic feedback in the form of resistance to the player and to return the pedal and potentiometer to their at rest positions.
(137) A further embodiment of the present invention would use potentiometers as sensors for pedal travel, with each potentiometer's shaft coupled indirectly to a cross rod through a pulley system. As a pedal or knee lever is engaged and a cross rod turns, it would move the shaft of a rotary potentiometer through strings or cords connection the cross rod shaft and the potentiometer's shaft, and a variable voltage could be read from the potentiometer. The potentiometer would continuously send its variable output through the output wire to the micro-controller (MCU). A spring would have enough tension to give kinesthetic feedback in the form of resistance to the player and to return the pedal and potentiometer to their at rest positions.
(138) A further embodiment of the present invention would use a combination of infrared (IR) light emitters and IR phototransistor as sensors for pedal travel. As a pedal or knee lever is engaged, a vane attached to the cross rod would interrupt the IR beam from the emitter to a greater or lesser degree. The collector's output variable voltage could be read.
(139) Another embodiment of the present invention would employ a slide potentiometer connected to each pedal, pedal rod, cross rod or other object connected in some way to each pedal. As the pedal moved, the movable portion of the slide potentiometer would move, and its output variable voltage could be read.
(140) Another embodiment of the present invention would have knee levers that are adjustable in the left/right direction for the comfort of the musician. A track could hold assemblies, each comprising a knee lever and its associated sensor. Some method (e.g., a thumbscrew) would release the assembly so that it could slide along a track from left to right and be re-secured in a new position.
(141) Another embodiment of the present invention would have knee levers that are adjustable in the front / back direction for the comfort of the musician. Each knee lever could be released, slid forward or backward, away from or closer to, the musician and then re-secured.