Embodiments described herein relate to graphical user interfaces (GUIs) for audio processing and more particularly to GUIs associated with processing audio from musical instruments.
Musicians and other artists are increasingly using computers to generate and record new music and other artistic works. There exists a variety of software programs designed to facilitate various aspects of the music generation and/or recording processes, each with varying degrees of functionality.
Among the challenges associated with many of the aforementioned programs is the lack of intuitive user-interfaces. It can be difficult and time consuming for a musician to learn to use different music software programs. This can be a particular challenge for musicians who frequently collaborate with new and different musicians who may or may not be familiar with their particular music software. Not only can time be lost in learning how to use a music program but a musician's creativity can be hampered by the constant tinkering with software that is less than intuitive.
In addition, many software programs fail to process audio input in the same way that it would be processed and/or output during a live performance on stage (e.g., using various effects pedals and/or amplifiers on an electric guitar).
A graphical element resembling an instrument amplifier (e.g., a guitar amplifier) having audio control parameters is displayed through a graphical user interface (GUI). An additional graphical element resembling one or more instrument effects pedals is displayed. Each instrument effects pedal has separate audio control parameters. An audio input is received from an instrument. The audio input is processed serially according to the audio control parameters associated with the one or more instrument effects pedals and the instrument amplifier. The audio resulting from the processing is provided as an output.
The following description includes discussion of figures having illustrations given by way of example of implementations of embodiments of the invention. The drawings should be understood by way of example, not by way of limitation. As used herein, references to one or more “embodiments” are to be understood as describing a particular feature, structure, or characteristic included in at least one implementation of the invention. Thus, phrases such as “in one embodiment” or “in an alternate embodiment” appearing herein describe various embodiments and implementations of the invention, and do not necessarily all refer to the same embodiment. However, they are also not necessarily mutually exclusive.
As provided herein, methods, apparatuses, and systems provide improved graphical user interfaces for generating and/or recording music. The methods, apparatuses, and systems described herein can be used in conjunction with music/audio software such as, for example, Garage Band™ offered by Apple, Inc. of Cupertino, Calif.
Guitar effects pedal module 122 can be one module for multiple guitar effects pedals or it can be multiple modules, each for a different guitar effects pedal. And while embodiments described herein are directed towards guitars, other musical instruments that make use of effects and/or effects pedals (e.g., bass guitars, etc.) could be used according to various embodiments.
Guitar effects pedal module 122 includes graphical element 124 and control parameters 126. Graphical element 124 is displayed by GUI 112 to resemble one or more real-world guitar effects pedals (also known as “stomp boxes”). In various embodiments, graphical element 124 can be displayed with different views. For example, in response to receiving user input 102 to enter a play mode, graphical element 124 can be displayed such that it appears that one or more guitar effects pedals are sitting on a floor (e.g., a stage floor, garage floor, etc.). Other views or arrangements of the guitar effects pedal(s) could be used to visually represent the play mode selected by the user. As used herein, “play mode” refers to a mode of operation of music software that is used while playing music with an instrument that is directly and/or indirectly coupled to a computer system running the music software.
In response to receiving user input 102 to enter an edit mode, graphical element 124 can be displayed such that it appears that the one or more guitar effects pedals are lifted up off the ground (e.g., for the purpose of being adjusted, changed, etc.). Once again, other views or arrangements of the guitar effects pedal(s) could be used to visually represent the edit mode selected by the user. As used herein, “edit mode” refers to a mode of operation of the music software that is used while editing the configuration, control parameters, settings, etc. of the various modules (e.g., guitar effects pedal module 122, guitar amp module 116, etc.).
Control parameters 126 for guitar effects pedal module 122 facilitate selection of zero or more effects pedals when the system is in an edit mode. In a play mode, control parameters 126 directly influence the sound output from the guitar effects pedals. The play mode control parameters can include, but are not limited to distortion, fuzz, overdrive, chorus, reverberation, wah-wah, flanging, phaser and pitch shifting.
Guitar amplifier module 116 also includes a graphical element 118 and control parameters 120. Graphical element 118 is displayed by GUI 112 to resemble a real-world guitar amplifier. In various embodiments, graphical element 118 can be displayed with different views. For example, in response to receiving user input 102 to enter a play mode, a front view of graphical element 118 is displayed to resemble the front of a guitar amplifier. The front view can be a sub-element of graphical element 118 in various embodiments. Other views or arrangements of a guitar amplifier could be used to visually represent the play mode selected by the user in other embodiments.
In response to receiving user input 102 to enter an edit mode, a back view of graphical element 118 is displayed to resemble the back of the guitar amplifier. Once again, other views or arrangements of the guitar amplifier could be used to visually represent the edit mode selected by the user in other embodiments.
Control parameters 120 for guitar amplifier module 116 facilitate control of various amp settings when the system is in an edit mode. More than one edit mode could exist in various embodiments. Amp settings may include, but are not limited to, amp model, send amounts for Master Echo and Master Reverb, input source, monitoring settings (e.g., off, on, on with feedback protection, etc.), and recording level. In a play mode, control parameters 126 directly influence the sound output from the guitar amplifier. The play mode control parameters can include, but are not limited to gain, bass, mid-range, treble, presence, master, output, reverb, tremolo rate, and tremolo depth.
System 100 also includes an audio input module 114 to receive instrument audio 104. For example, audio input module 114 might include a standard quarter inch analog plug to serve as the connection point for an analog cable connected to an electric guitar, a digital keyboard or other instrument. Other connection plugs (e.g., RCA plugs, mini RCA plugs, microphone plugs, etc.) could be used to receive instrument audio 104. It should be noted that microphones are considered instruments for purposes of the disclosure herein.
In embodiments where a system (e.g., system 100) is built directly into the instrument itself, audio input module 114 may not require connection plugs. Instead, audio input module 114 might receive audio input via a direct connection to the source of the audio.
Audio input module 114 sends audio input to audio processor 128. Audio processor 128 processes instrument audio 104 based on the control parameters (120 and 126) defined for guitar effects pedal 122 and guitar amp module 116. In various embodiments, audio processor 128 processes instrument audio 104 based on the control parameters of the guitar effects pedal module 122 before processing the audio based on the control parameters of the guitar amplifier module 116. In other words, instrument audio 104 is processed is serially in the same way that it would be processed using real effects pedals and amplifiers—the audio travels first through (and is processed by) the effects pedals and then through (and is processed by) the amplifier.
The results of the processing are output through output module 130 (e.g., a speaker, speaker system, etc.) as processed instrument audio 132.
As discussed previously, a user may enter a play mode or an edit mode in various embodiments of a music software system. When a play mode is selected, a front view of guitar amp 210 may be displayed (as shown in
Effects pedals 218 are shown situated on the ground in GUI 212. Effects pedals 218 may be situated as shown when the user enters a play mode. When an edit mode is selected, effects pedals 218 may move in an animation to some other configuration/display in GUI 212, such as, for example, a configuration where one or more effects pedals 218 are lifted up off the ground.
It should be noted that in various embodiments, a user will select/enable a combination of effects pedals and an amplifier. However, it is not necessary for a user to employ a selection of multiple effects pedals and an amplifier. In some embodiments, a user may select only multiple effects pedals or zero effects pedals to go with the amplifier.
A graphical element resembling one or more instrument effects pedals is also displayed 320 through the graphical user interface. The graphical element and/or the instrument effects pedal(s) which it represents similarly have control parameters that control processing of audio input. The control parameters for the effects pedals module could include, but are not limited to distortion, fuzz, overdrive, chorus, reverberation, wah-wah, flanging, phaser and pitch shifting. In various embodiments, the effects pedals are guitar effects pedals or “stomp boxes”. However, the effects pedals could, in alternate embodiments, be a sustain pedal for a piano, for example.
The exemplary computer system 400 includes a processor 402, a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and a secondary memory 416 (e.g., a data storage device), which communicate with each other via a bus 408.
Processor 402 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processor 402 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 402 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processor 402 is configured to execute the processing logic 422 for performing the operations and steps discussed herein.
The computer system 400 may further include a network interface device 416. The computer system 400 also may include a video display unit 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 412 (e.g., a keyboard), and a cursor control device 414 (e.g., a mouse)
The secondary memory 418 may include a machine-readable storage medium (or more specifically a computer-readable storage medium) 424 on which is stored one or more sets of instructions (e.g., software 424) embodying any one or more of the methodologies or functions described herein. The software 422 may also reside, completely or at least partially, within the main memory 404 and/or within the processing device 402 during execution thereof by the computer system 400, the main memory 404 and the processing device 402 also constituting machine-readable storage media. The software 422 may further be transmitted or received over a network via the network interface device 416.
While the computer-readable storage medium 424 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “computer readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
Various components described herein may be a means for performing the functions described herein. Each component described herein includes software, hardware, or a combination of these. The operations and functions described herein can be implemented as software modules, hardware modules, special-purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), digital signal processors (DSPs), etc.), embedded controllers, hardwired circuitry, etc.
Aside from what is described herein, various modifications may be made to the disclosed embodiments and implementations of the invention without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense.