add themidibus library

main
Jordan Orelli 4 years ago
parent b6b31ae226
commit c67ef29f20

@ -0,0 +1,5 @@
# libraries
in Processing, you can add libraries inside of the IDE, which has a barebones
dependency manager. I honestly don't know if these are worth versioning, but
I'd rather have files to delete than be missing files.

@ -0,0 +1,63 @@
-Version 008
Changes:
-Remove register/unregister dispose to be compatible with Processing 3.0
-Version 007
Changes:
-Added constructors to MidiBus which allow parent as Object, for use outside of Processing
-Simplify constructors
-Stop using deprecated methods from processing 1.0, switch to new processing 2.0 methods
-Introduce new class called Note and ControlChange
-Provide an object oriented interface using Note and ControlChange both via processing (PApplet) and with callbacks with listeners
-Allow sending timestamps to be disabled so MMJ can be used
-Attempted to improve startup speed
-Version 005
Changes:
-Added library.properties for Processing 2.0
-Added permanent URL for latest version http://www.smallbutdigital.com/releases/themidibus/themidibus-latest.zip and library.properties file http://www.smallbutdigital.com/releases/themidibus/themidibus-latest.txt
Bug Fixes:
-Fixed two small issues in sendMessage(byte[] data) which made the method mostly useless before.
Notable Bug Fixes:
-Fixed uninitialized listeners vector.
-Fixed available/unavailable devices detection: version 003 would sometimes list unavailable devices as available.
-Fixed exceptional cases which threw NullPointer exceptions.
-Added try-catch statements to catch some unusual exception from MMJ mac MIDI subsystem
-Implemented workaround for MMJ malloc problems when closing devices.
Changes:
-New devices indexing system:
-Version 3 used mixed indicies for inputs and outputs, eg:
Available Midi Devices:
-----------------------
[0] "IAC Driver - Bus 1" [Input]
[1] "IAC Driver - Bus 1" [Output]
[2] "Real Time Sequencer" [Input/Output]
[3] "Java Sound Synthesizer" [Output]
-Version 4 now uses separate indicies for inputs and outputs, eg:
Available MIDI Devices:
----------Input----------
[0] "IAC Driver - Bus 1"
[1] "Real Time Sequencer"
----------Output----------
[0] "IAC Driver - Bus 1"
[1] "Real Time Sequencer"
[2] "Java Sound Synthesizer"
-The static method list() has been changed as per the new indexing system (and will also show unavailable devices)
-The static method returnList() has been replaced by the static methods availableInputs() and availableOutputs()
New Features:
-Added overrides to Object methods for clone(), equals(Object obj), hashCode() and toString()
-Added attachedInputs() and attachedOutputs() methods. Theses methods return an array of the inputs/output currently attached to a given instance of the MidiBus object.
-Added removeInput(int device_num), removeInput(String device_name), removeOutput(int device_num) and removeOutput(String device_name). Theses methods allow the selective removal of attached inputs and outputs.
-Added static method unavailableDevices() which lists any devices that are detected but appear to be unavailable. (As per bug fix)
-Added new overloads to sendMessage():
-sendMessage(byte[] data). Attempts to send an arbitrary array of bytes as a MIDI message. This method supports System Exclusive messages and Meta Messages, including messages with more than 2 data bytes.
-sendMessage(MidiMessage message). Attempts to send a MidiMessage object.
-sendMessage(int status). Attempts to send a message with only a status byte.
-sendMessage(int status, int data). Attempts to send a message with only a status byte and one data byte.

@ -0,0 +1,486 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includesded), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
tse explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise opyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily use for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, less of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights hae been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore,overed work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, throughipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parre a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to anyringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement d be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to lial Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is giy the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
ay consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

@ -0,0 +1,7 @@
The recommended way to install the MidiBus is the [Processing Library Manager](http://wiki.processing.org/w/How_to_Install_a_Contributed_Library). This way Processing will automatically notify you when a new version is available.
If you wish to install the MidiBus manually you can simply drag this folder into your libraries folder.
For Processing 1.0+, your libraries folder is located in your Processing sketch folder.
Otherwise, if you're still using Processing BETA, your libraries folder can be found in same folder as Processing itself.

@ -0,0 +1,38 @@
# The MidiBus
The MidiBus is a MIDI library for Processing. It provides a quick and simple way to access and interact with installed MIDI system resources. The MidiBus is aimed primarily at real time MIDI applications. The focus is on strong MIDI I/O capabilities and keeping frills to a minimum (e.g. no built in sequencer, file read/write, MIDI recording/playback).
## Download and Install (Stable)
The recommended way to install the MidiBus is the [Processing Library Manager](http://wiki.processing.org/w/How_to_Install_a_Contributed_Library). This way Processing will automatically notify you when a new version is available.
If you wish to install the MidiBus manually you can get the latest stable build including binaries and docs [via direct downloadd](http://smallbutdigital.com/releases/themidibus/themidibus-latest.zip).
## Download and Install (Latest)
The latest version can easily be cloned directly from github via
git clone https://github.com/sparks/themidibus.git /your/processing/libraries/
### Compiling and Generating JavaDocs
If you clone the latest version you will need to compile the library and generate the JavaDocs. This requires ``javac`` and ``ant``.
To compile run ``ant``
To generate the JavaDocs run ``ant doc``
## About
Before you get started, it is important to understand that the MidiBus offers little functionality that isn't available from Java's native [javax.sound.midi package](http://docs.oracle.com/javase/6/docs/api/javax/sound/midi/package-summary.html). Anyone interested in working with MIDI in Java should take the time to read the documentation for the [javax.sound.midi package](http://docs.oracle.com/javase/6/docs/api/javax/sound/midi/package-summary.html). It offers a more full featured and flexible alternative to this package, although it does do so at the cost of added complexity. In addition, it may be worthwhile to skim [the "official" Java Tutorial for the javax.sound.* packages](http://docs.oracle.com/javase/tutorial/sound/index.html).
## Getting Started
The MidiBus is very straight forwards to use. A good place to start is the included Basic.pde example. From there you can look at the JavaDocs either [online](http://smallbutdigital.com/themidibus/themidibus/package-summary.html) or bundled with your library in the "reference" subdirectory. The JavaDocs are a comprehensive reference of all the MidiBus' available functionality. There are also a few advanced examples which can (hopefully) help answer the most common questions: how to work with multiple input/output devices, how to send uncommon MIDI messages and how to receive uncommon MIDI messages.
## Using Alternate MIDI Subsytem
The Apple MIDI subsystem has a number of problems. Most notably it doesn't seem to support MIDI messages with status >= 0xF0 such as SysEx messages. You can use [MMJ](http://www.humatic.de/htools/mmj.htm) as an alternate subsystem. To do so, download mmj and add both `mmj.jar` and `libmmj.jnilib` to the midibus `library` subdirectory. You must also disable timestamps in your MidiBus instance otherwise MMJ won't work properly. You can do so by calling `mybus.sendTimestamp(false)`
## Liscence
GPL3

@ -0,0 +1,55 @@
<!--
Generic Ant build.xml file for Processing libraries
Severin Smith
http://www.smallbutdigital.com
-->
<project name="themidibus" basedir="." default="main">
<property name="core.dir" value="/Applications/Processing.app/Contents/Java/"/>
<property name="core-lib.dir" value="/Applications/Processing.app/Contents/Java/"/>
<property name="src.dir" value="src"/>
<property name="build.dir" value="bin"/>
<property name="ref.dir" value="reference"/>
<path id="classpath">
<fileset dir="${core.dir}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${core-lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${build.dir}"/>
<javac srcdir="${src.dir}" sourcepath="" destdir="${build.dir}" classpathref="classpath">
<exclude name="**/PApplet.java"/>
</javac>
</target>
<target name="jar" depends="compile">
<mkdir dir="library"/>
<jar destfile="library/${ant.project.name}.jar" basedir="${build.dir}"/>
</target>
<target name="doc">
<mkdir dir="${ref.dir}"/>
<javadoc sourcepath="${src.dir}" destdir="${ref.dir}" author="true" version="true" classpathref="classpath"/>
</target>
<target name="zip">
<zip destfile="${ant.project.name}.zip">
<zipfileset dir="." excludes="**/*.DS_Store, .gitignore, **/.git, **/.git/**/*, TODO.txt" prefix="${ant.project.name}"/>
</zip>
</target>
<target name="main" depends="jar">
<antcall target="clean"/>
</target>
</project>

@ -0,0 +1,102 @@
import themidibus.*; //Import the library
import javax.sound.midi.MidiMessage; //Import the MidiMessage classes http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/MidiMessage.html
import javax.sound.midi.SysexMessage;
import javax.sound.midi.ShortMessage;
MidiBus myBus; // The MidiBus
void setup() {
size(400, 400);
background(0);
MidiBus.list(); // List all available Midi devices on STDOUT. This will show each device's index and name.
myBus = new MidiBus(this, 0, 0); // Create a new MidiBus object
// On mac you will need to use MMJ since Apple's MIDI subsystem doesn't properly support SysEx.
// However MMJ doesn't support sending timestamps so you have to turn off timestamps.
// myBus.sendTimestamps(false);
}
void draw() {
int channel = 0;
int pitch = 64;
int velocity = 127;
myBus.sendNoteOn(channel, pitch, velocity); // Send a Midi noteOn
delay(200);
myBus.sendNoteOff(channel, pitch, velocity); // Send a Midi nodeOff
delay(100);
//Or for something different we could send a custom Midi message ...
int status_byte = 0xA0; // For instance let us send aftertouch
int channel_byte = 0; // On channel 0 again
int first_byte = 64; // The same note;
int second_byte = 80; // But with less velocity
myBus.sendMessage(status_byte, channel_byte, first_byte, second_byte);
//Or we could even send a variable length sysex message
//IMPORTANT: On mac you will have to use the MMJ MIDI subsystem to be able to send SysexMessages. Consult README.md for more information
myBus.sendMessage(
new byte[] {
(byte)0xF0, (byte)0x1, (byte)0x2, (byte)0x3, (byte)0x4, (byte)0xF7
}
);
//We could also do the same thing this way ...
try { //All the methods of SysexMessage, ShortMessage, etc, require try catch blocks
SysexMessage message = new SysexMessage();
message.setMessage(
0xF0,
new byte[] {
(byte)0x5, (byte)0x6, (byte)0x7, (byte)0x8, (byte)0xF7
},
5
);
myBus.sendMessage(message);
} catch(Exception e) {
}
delay(2000);
}
// Notice all bytes below are converted to integeres using the following system:
// int i = (int)(byte & 0xFF)
// This properly convertes an unsigned byte (MIDI uses unsigned bytes) to a signed int
// Because java only supports signed bytes, you will get incorrect values if you don't do so
void rawMidi(byte[] data) { // You can also use rawMidi(byte[] data, String bus_name)
// Receive some raw data
// data[0] will be the status byte
// data[1] and data[2] will contain the parameter of the message (e.g. pitch and volume for noteOn noteOff)
println();
println("Raw Midi Data:");
println("--------");
println("Status Byte/MIDI Command:"+(int)(data[0] & 0xFF));
// N.B. In some cases (noteOn, noteOff, controllerChange, etc) the first half of the status byte is the command and the second half if the channel
// In these cases (data[0] & 0xF0) gives you the command and (data[0] & 0x0F) gives you the channel
for (int i = 1;i < data.length;i++) {
println("Param "+(i+1)+": "+(int)(data[i] & 0xFF));
}
}
void midiMessage(MidiMessage message) { // You can also use midiMessage(MidiMessage message, long timestamp, String bus_name)
// Receive a MidiMessage
// MidiMessage is an abstract class, the actual passed object will be either javax.sound.midi.MetaMessage, javax.sound.midi.ShortMessage, javax.sound.midi.SysexMessage.
// Check it out here http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html
println();
println("MidiMessage Data:");
println("--------");
println("Status Byte/MIDI Command:"+message.getStatus());
for (int i = 1;i < message.getMessage().length;i++) {
println("Param "+(i+1)+": "+(int)(message.getMessage()[i] & 0xFF));
}
}
void delay(int time) {
int current = millis();
while (millis () < current+time) Thread.yield();
}

@ -0,0 +1,76 @@
import themidibus.*; //Import the library
MidiBus myBus; // The MidiBus
void setup() {
size(400, 400);
background(0);
MidiBus.list(); // List all available Midi devices on STDOUT. This will show each device's index and name.
// Either you can
// Parent In Out
// | | |
//myBus = new MidiBus(this, 0, 1); // Create a new MidiBus using the device index to select the Midi input and output devices respectively.
// or you can ...
// Parent In Out
// | | |
//myBus = new MidiBus(this, "IncomingDeviceName", "OutgoingDeviceName"); // Create a new MidiBus using the device names to select the Midi input and output devices respectively.
// or for testing you could ...
// Parent In Out
// | | |
myBus = new MidiBus(this, -1, "Java Sound Synthesizer"); // Create a new MidiBus with no input device and the default Java Sound Synthesizer as the output device.
}
void draw() {
int channel = 0;
int pitch = 64;
int velocity = 127;
myBus.sendNoteOn(channel, pitch, velocity); // Send a Midi noteOn
delay(200);
myBus.sendNoteOff(channel, pitch, velocity); // Send a Midi nodeOff
int number = 0;
int value = 90;
myBus.sendControllerChange(channel, number, value); // Send a controllerChange
delay(2000);
}
void noteOn(int channel, int pitch, int velocity) {
// Receive a noteOn
println();
println("Note On:");
println("--------");
println("Channel:"+channel);
println("Pitch:"+pitch);
println("Velocity:"+velocity);
}
void noteOff(int channel, int pitch, int velocity) {
// Receive a noteOff
println();
println("Note Off:");
println("--------");
println("Channel:"+channel);
println("Pitch:"+pitch);
println("Velocity:"+velocity);
}
void controllerChange(int channel, int number, int value) {
// Receive a controllerChange
println();
println("Controller Change:");
println("--------");
println("Channel:"+channel);
println("Number:"+number);
println("Value:"+value);
}
void delay(int time) {
int current = millis();
while (millis () < current+time) Thread.yield();
}

@ -0,0 +1,78 @@
import themidibus.*; //Import the library
MidiBus myBus; // The MidiBus
void setup() {
size(400, 400);
background(0);
MidiBus.list(); // List all available Midi devices on STDOUT. This will show each device's index and name.
// Either you can
// Parent In Out
// | | |
//myBus = new MidiBus(this, 0, 1); // Create a new MidiBus using the device index to select the Midi input and output devices respectively.
// or you can ...
// Parent In Out
// | | |
//myBus = new MidiBus(this, "IncomingDeviceName", "OutgoingDeviceName"); // Create a new MidiBus using the device names to select the Midi input and output devices respectively.
// or for testing you could ...
// Parent In Out
// | | |
myBus = new MidiBus(this, -1, "Java Sound Synthesizer"); // Create a new MidiBus with no input device and the default Java Sound Synthesizer as the output device.
}
void draw() {
int channel = 0;
int pitch = 64;
int velocity = 127;
Note note = new Note(channel, pitch, velocity);
myBus.sendNoteOn(note); // Send a Midi noteOn
delay(200);
myBus.sendNoteOff(note); // Send a Midi nodeOff
int number = 0;
int value = 90;
ControlChange change = new ControlChange(channel, number, velocity);
myBus.sendControllerChange(change); // Send a controllerChange
delay(2000);
}
void noteOn(Note note) {
// Receive a noteOn
println();
println("Note On:");
println("--------");
println("Channel:"+note.channel());
println("Pitch:"+note.pitch());
println("Velocity:"+note.velocity());
}
void noteOff(Note note) {
// Receive a noteOff
println();
println("Note Off:");
println("--------");
println("Channel:"+note.channel());
println("Pitch:"+note.pitch());
println("Velocity:"+note.velocity());
}
void controllerChange(ControlChange change) {
// Receive a controllerChange
println();
println("Controller Change:");
println("--------");
println("Channel:"+change.channel());
println("Number:"+change.number());
println("Value:"+change.value());
}
void delay(int time) {
int current = millis();
while (millis () < current+time) Thread.yield();
}

@ -0,0 +1,115 @@
import themidibus.*; //Import the library
MidiBus busA; //The first MidiBus
MidiBus busB; //The second MidiBus
void setup() {
size(400, 400);
background(0);
MidiBus.list(); //List all available Midi devices. This will show each device's index and name.
//This is a different way of listing the available Midi devices.
println();
println("Available MIDI Devices:");
System.out.println("----------Input (from availableInputs())----------");
String[] available_inputs = MidiBus.availableInputs(); //Returns an array of available input devices
for (int i = 0;i < available_inputs.length;i++) System.out.println("["+i+"] \""+available_inputs[i]+"\"");
System.out.println("----------Output (from availableOutputs())----------");
String[] available_outputs = MidiBus.availableOutputs(); //Returns an array of available output devices
for (int i = 0;i < available_outputs.length;i++) System.out.println("["+i+"] \""+available_outputs[i]+"\"");
System.out.println("----------Unavailable (from unavailableDevices())----------");
String[] unavailable = MidiBus.unavailableDevices(); //Returns an array of unavailable devices
for (int i = 0;i < unavailable.length;i++) System.out.println("["+i+"] \""+unavailable[i]+"\"");
busA = new MidiBus(this, "IncomingA", "OutgoingA", "busA"); //Create a first new MidiBus attached to the IncommingA Midi input device and the OutgoingA Midi output device. We will name it busA.
busB = new MidiBus(this, "IncomingB", "OutgoingB", "busB"); //Create a second new MidiBus attached to the IncommingB Midi input device and the OutgoingB Midi output device. We will name it busB.
busA.addOutput("OutgoingC"); //Add a new output device to busA called OutgoingC
busB.addInput("IncomingC"); //Add a new input device to busB called IncommingC
//It is also possible to check what devices are currently attached as inputs or outputs on a bus
println();
println("Inputs on busA");
println(busA.attachedInputs()); //Print the devices attached as inputs to busA
println();
println("Outputs on busB");
println(busB.attachedOutputs()); //Prints the devices attached as outpus to busB
}
void draw() {
int channel = 0;
int pitch = 64;
int velocity = 127;
busA.sendNoteOn(channel, pitch, velocity); //Send a noteOn to OutgoingA and OutgoingC through busA
delay(200);
busB.sendNoteOn(channel, pitch, velocity); //Send a noteOn to OutgoingB through busB
delay(100);
busA.sendNoteOff(channel, pitch, velocity); //Send a noteOff to OutgoingA and OutgoingC through busA
busB.sendNoteOff(channel, pitch, velocity); //Send a noteOff to OutgoingB through busB
int number = 0;
int value = 90;
busA.sendControllerChange(channel, number, value); //Send a controllerChange to OutgoingA and OutgoingC through busA
busB.sendControllerChange(channel, number+10, value+10); //Send a controllerChange to OutgoingB through busB
delay(2000);
}
void noteOn(int channel, int pitch, int velocity, long timestamp, String bus_name) {
println();
println("Note On:");
println("--------");
println("Channel:"+channel);
println("Pitch:"+pitch);
println("Velocity:"+velocity);
println("Timestamp:"+timestamp);
println("Recieved on Bus:"+bus_name);
if (bus_name == "busA") {
println("This came from IncomingA");
} else if (bus_name == "busB") {
println("This came from IncomingB or IncomingC");
}
}
void noteOff(int channel, int pitch, int velocity, long timestamp, String bus_name) {
println();
println("Note Off:");
println("--------");
println("Channel:"+channel);
println("Pitch:"+pitch);
println("Velocity:"+velocity);
println("Timestamp:"+timestamp);
println("Recieved on Bus:"+bus_name);
if (bus_name == "busA") {
println("This came from IncomingA");
} else if (bus_name == "busB") {
println("This came from IncomingB or IncomingC");
}
}
void controllerChange(int channel, int number, int value, long timestamp, String bus_name) {
println();
println("Controller Change:");
println("--------");
println("Channel:"+channel);
println("Number:"+number);
println("Value:"+value);
println("Timestamp:"+timestamp);
println("Recieved on Bus:"+bus_name);
if (bus_name == "busA") {
println("This came from IncomingA");
} else if (bus_name == "busB") {
println("This came from IncomingB or IncomingC");
}
}
void delay(int time) {
int current = millis();
while (millis () < current+time) Thread.yield();
}

@ -0,0 +1,11 @@
name=The MidiBus
category=Data
authors=[Severin Smith](http://www.smallbutdigital.com/)
url=http://www.smallbutdigital.com/themidibus.php
sentence=The MidiBus is a minimal MIDI library for Processing, no frills, no limitations.
paragraph=The MidiBus is a MIDI library for Processing. It provides a quick and simple way to access and interact with installed MIDI system resources. The MidiBus is aimed primarily at real time MIDI applications. The focus is on strong MIDI I/O capabilities and keeping frills to a minimum (e.g. no built in sequencer, file read/write, MIDI recording/playback).
version=8
prettyVersion=8
lastUpdated=0
minRevision=0
maxRevision=0

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>All Classes</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar">All Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="themidibus/ControlChange.html" title="class in themidibus" target="classFrame">ControlChange</a></li>
<li><a href="themidibus/MidiBus.html" title="class in themidibus" target="classFrame">MidiBus</a></li>
<li><a href="themidibus/MidiListener.html" title="interface in themidibus" target="classFrame"><i>MidiListener</i></a></li>
<li><a href="themidibus/Note.html" title="class in themidibus" target="classFrame">Note</a></li>
<li><a href="themidibus/ObjectMidiListener.html" title="interface in themidibus" target="classFrame"><i>ObjectMidiListener</i></a></li>
<li><a href="themidibus/PApplet.html" title="class in themidibus" target="classFrame">PApplet</a></li>
<li><a href="themidibus/RawMidiListener.html" title="interface in themidibus" target="classFrame"><i>RawMidiListener</i></a></li>
<li><a href="themidibus/SimpleMidiListener.html" title="interface in themidibus" target="classFrame"><i>SimpleMidiListener</i></a></li>
<li><a href="themidibus/StandardMidiListener.html" title="interface in themidibus" target="classFrame"><i>StandardMidiListener</i></a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>All Classes</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar">All Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></li>
<li><a href="themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></li>
<li><a href="themidibus/MidiListener.html" title="interface in themidibus"><i>MidiListener</i></a></li>
<li><a href="themidibus/Note.html" title="class in themidibus">Note</a></li>
<li><a href="themidibus/ObjectMidiListener.html" title="interface in themidibus"><i>ObjectMidiListener</i></a></li>
<li><a href="themidibus/PApplet.html" title="class in themidibus">PApplet</a></li>
<li><a href="themidibus/RawMidiListener.html" title="interface in themidibus"><i>RawMidiListener</i></a></li>
<li><a href="themidibus/SimpleMidiListener.html" title="interface in themidibus"><i>SimpleMidiListener</i></a></li>
<li><a href="themidibus/StandardMidiListener.html" title="interface in themidibus"><i>StandardMidiListener</i></a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,111 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Constant Field Values</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Constant Field Values";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
<h2 title="Contents">Contents</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,111 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Deprecated List</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Deprecated List";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,208 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>API Help</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API Help";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">How This API Document Is Organized</h1>
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<h2>Package</h2>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
<ul>
<li>Interfaces (italic)</li>
<li>Classes</li>
<li>Enums</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Types</li>
</ul>
</li>
<li class="blockList">
<h2>Class/Interface</h2>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
<ul>
<li>Class inheritance diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class/interface declaration</li>
<li>Class/interface description</li>
</ul>
<ul>
<li>Nested Class Summary</li>
<li>Field Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
</ul>
<ul>
<li>Field Detail</li>
<li>Constructor Detail</li>
<li>Method Detail</li>
</ul>
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</li>
<li class="blockList">
<h2>Annotation Type</h2>
<p>Each annotation type has its own separate page with the following sections:</p>
<ul>
<li>Annotation Type declaration</li>
<li>Annotation Type description</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
<li>Element Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Enum</h2>
<p>Each enum has its own separate page with the following sections:</p>
<ul>
<li>Enum declaration</li>
<li>Enum description</li>
<li>Enum Constant Summary</li>
<li>Enum Constant Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Tree (Class Hierarchy)</h2>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul>
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
</ul>
</li>
<li class="blockList">
<h2>Deprecated API</h2>
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
</li>
<li class="blockList">
<h2>Index</h2>
<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
</li>
<li class="blockList">
<h2>Prev/Next</h2>
<p>These links take you to the next or previous class, interface, package, or related page.</p>
</li>
<li class="blockList">
<h2>Frames/No Frames</h2>
<p>These links show and hide the HTML frames. All pages are available with or without frames.</p>
</li>
<li class="blockList">
<h2>All Classes</h2>
<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
</li>
<li class="blockList">
<h2>Serialized Form</h2>
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
</li>
<li class="blockList">
<h2>Constant Field Values</h2>
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
</li>
</ul>
<em>This help file applies to API documentation generated using the standard doclet.</em></div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="themidibus/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,700 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Index</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Index";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="./themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="./themidibus/package-tree.html">Tree</a></li>
<li><a href="./deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="./help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="./allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a name="_A_">
<!-- -->
</a>
<h2 class="title">A</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#addInput(int)">addInput(int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Adds a new MIDI input device specified by the index device_num.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#addInput(java.lang.String)">addInput(String)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Adds a new MIDI input device specified by the name device_name.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#addMidiListener(themidibus.MidiListener)">addMidiListener(MidiListener)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Adds a listener who will be notified each time a new MIDI message is received from a MIDI input device.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#addOutput(int)">addOutput(int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Adds a new MIDI output device specified by the index device_num.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#addOutput(java.lang.String)">addOutput(String)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Adds a new MIDI output device specified by the name device_name.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#attachedInputs()">attachedInputs()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the names of all the attached input devices.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#attachedOutputs()">attachedOutputs()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the names of all the attached output devices.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#availableInputs()">availableInputs()</a></span> - Static method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the names of all the available input devices.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#availableOutputs()">availableOutputs()</a></span> - Static method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the names of all the available output devices.</div>
</dd>
</dl>
<a name="_B_">
<!-- -->
</a>
<h2 class="title">B</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#bus_name">bus_name</a></span> - Variable in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#bus_name">bus_name</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="_C_">
<!-- -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#channel">channel</a></span> - Variable in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#channel()">channel()</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Return the channel of the ControlChange</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#channel">channel</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#channel()">channel()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the channel of the Note</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#clearAll()">clearAll()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes, clears and disposes of all input and output related Transmitters and Receivers.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#clearInputs()">clearInputs()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes, clears and disposes of all input related Transmitters and Receivers.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#clearOutputs()">clearOutputs()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes, clears and disposes of all output related Receivers.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#clone()">clone()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Creates and returns a copy of this object.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#close()">close()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes this MidiBus and all connections it has with other MIDI devices.</div>
</dd>
<dt><a href="./themidibus/ControlChange.html" title="class in themidibus"><span class="strong">ControlChange</span></a> - Class in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">The ControlChange class represents a change in value from a controller.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#ControlChange(int, int, int)">ControlChange(int, int, int)</a></span> - Constructor for class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Constructs a ControlChange object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#ControlChange(int, int, int, long, java.lang.String)">ControlChange(int, int, int, long, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Constructs a ControlChange object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ObjectMidiListener.html#controllerChange(themidibus.ControlChange)">controllerChange(ControlChange)</a></span> - Method in interface themidibus.<a href="./themidibus/ObjectMidiListener.html" title="interface in themidibus">ObjectMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this ObjectMidiListener of a new ControllerChange events call this method.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#controllerChange(int, int, int)">controllerChange(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, controller number and contoller value associated with every new ContollerChange MIDI message recieved by a MidiBus attached to this applet.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#controllerChange(int, int, int, long, java.lang.String)">controllerChange(int, int, int, long, String)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#controllerChange(themidibus.ControlChange)">controllerChange(ControlChange)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed a ControlChange object representing controlChange event</div>
</dd>
<dt><span class="strong"><a href="./themidibus/SimpleMidiListener.html#controllerChange(int, int, int)">controllerChange(int, int, int)</a></span> - Method in interface themidibus.<a href="./themidibus/SimpleMidiListener.html" title="interface in themidibus">SimpleMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this SimpleMidiListener of a new ControllerChange MIDI message call this method.</div>
</dd>
</dl>
<a name="_D_">
<!-- -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#dispose()">dispose()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes this MidiBus and all connections it has with other MIDI devices.</div>
</dd>
</dl>
<a name="_E_">
<!-- -->
</a>
<h2 class="title">E</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Check if all fields are equal.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Check if all fields are equal.</div>
</dd>
</dl>
<a name="_F_">
<!-- -->
</a>
<h2 class="title">F</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#finalize()">finalize()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Override the finalize() method from java.lang.Object.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#findMidiDevices()">findMidiDevices()</a></span> - Static method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Rescan for Midi Devices.</div>
</dd>
</dl>
<a name="_G_">
<!-- -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#generateBusName()">generateBusName()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Generate a name for this MidiBus instance.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#getBusName()">getBusName()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the name of this MidiBus.</div>
</dd>
</dl>
<a name="_H_">
<!-- -->
</a>
<h2 class="title">H</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#hashCode()">hashCode()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns a hash code value for the object.</div>
</dd>
</dl>
<a name="_L_">
<!-- -->
</a>
<h2 class="title">L</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#list()">list()</a></span> - Static method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">List all installed MIDI devices.</div>
</dd>
</dl>
<a name="_M_">
<!-- -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><a href="./themidibus/MidiBus.html" title="class in themidibus"><span class="strong">MidiBus</span></a> - Class in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">The MidiBus class provides a simple way to send and receive MIDI within Processing sketches.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus()">MidiBus()</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new Midibus.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object)">MidiBus(Object)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, java.lang.String)">MidiBus(Object, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus with the specified bus_name and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, int, int)">MidiBus(Object, int, int)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, int, int, java.lang.String)">MidiBus(Object, int, int, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus with the specified bus_name and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, java.lang.String, java.lang.String)">MidiBus(Object, String, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)">MidiBus(Object, String, String, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Constructs a new MidiBus with the specified bus_name and registers the specified parent (PApplet or other) for callbacks.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, int, java.lang.String)">MidiBus(Object, int, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">More flavors of constructor, similar to the others, but with mixed arguments</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, int, java.lang.String, java.lang.String)">MidiBus(Object, int, String, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">More flavors of constructor, similar to the others, but with mixed arguments</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, java.lang.String, int)">MidiBus(Object, String, int)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">More flavors of constructor, similar to the others, but with mixed arguments</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#MidiBus(java.lang.Object, java.lang.String, int, java.lang.String)">MidiBus(Object, String, int, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">More flavors of constructor, similar to the others, but with mixed arguments</div>
</dd>
<dt><a href="./themidibus/MidiListener.html" title="interface in themidibus"><span class="strong">MidiListener</span></a> - Interface in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">This is a placeholder interface which makes it easier to program and manipulate objects which implement subinterfaces of MidiListener like <a href="./themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>, <a href="./themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a> or <a href="./themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage)">midiMessage(MidiMessage)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage, long, java.lang.String)">midiMessage(MidiMessage, long, String)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/StandardMidiListener.html#midiMessage(javax.sound.midi.MidiMessage, long)">midiMessage(MidiMessage, long)</a></span> - Method in interface themidibus.<a href="./themidibus/StandardMidiListener.html" title="interface in themidibus">StandardMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this StandardMidiListener of a new MIDI message call this method and pass the MidiMessage</div>
</dd>
</dl>
<a name="_N_">
<!-- -->
</a>
<h2 class="title">N</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/Note.html#name()">name()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the name of the note, e.g.</div>
</dd>
<dt><a href="./themidibus/Note.html" title="class in themidibus"><span class="strong">Note</span></a> - Class in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">The Note class represents a pressed or released key.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#Note(int, int, int)">Note(int, int, int)</a></span> - Constructor for class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Constructs a Note object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#Note(int, int, int, int)">Note(int, int, int, int)</a></span> - Constructor for class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Constructs a Note object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#Note(int, int, int, long, java.lang.String)">Note(int, int, int, long, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Constructs a Note object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#Note(int, int, int, int, long, java.lang.String)">Note(int, int, int, int, long, String)</a></span> - Constructor for class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Constructs a Note object</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ObjectMidiListener.html#noteOff(themidibus.Note)">noteOff(Note)</a></span> - Method in interface themidibus.<a href="./themidibus/ObjectMidiListener.html" title="interface in themidibus">ObjectMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOff events call this method.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOff(int, int, int)">noteOff(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOff(int, int, int, long, java.lang.String)">noteOff(int, int, int, long, String)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOff(themidibus.Note)">noteOff(Note)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed a Note object representing noteOff event</div>
</dd>
<dt><span class="strong"><a href="./themidibus/SimpleMidiListener.html#noteOff(int, int, int)">noteOff(int, int, int)</a></span> - Method in interface themidibus.<a href="./themidibus/SimpleMidiListener.html" title="interface in themidibus">SimpleMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOff MIDI message call this method.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ObjectMidiListener.html#noteOn(themidibus.Note)">noteOn(Note)</a></span> - Method in interface themidibus.<a href="./themidibus/ObjectMidiListener.html" title="interface in themidibus">ObjectMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOn events call this method.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOn(int, int, int)">noteOn(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOn(int, int, int, long, java.lang.String)">noteOn(int, int, int, long, String)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#noteOn(themidibus.Note)">noteOn(Note)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed a Note object representing noteOn event</div>
</dd>
<dt><span class="strong"><a href="./themidibus/SimpleMidiListener.html#noteOn(int, int, int)">noteOn(int, int, int)</a></span> - Method in interface themidibus.<a href="./themidibus/SimpleMidiListener.html" title="interface in themidibus">SimpleMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOn MIDI message call this method.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#number">number</a></span> - Variable in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#number()">number()</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Return the number of the ControlChange</div>
</dd>
</dl>
<a name="_O_">
<!-- -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><a href="./themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">ObjectMidiListener</span></a> - Interface in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">A ObjectMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange events via <a href="./themidibus/Note.html" title="class in themidibus"><code>Note</code></a> and <a href="./themidibus/ControlChange.html" title="class in themidibus"><code>ControlChange</code></a> objects, usually by a MidiBus object which it is connected to.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#octave()">octave()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the octave of the Note.</div>
</dd>
</dl>
<a name="_P_">
<!-- -->
</a>
<h2 class="title">P</h2>
<dl>
<dt><a href="./themidibus/PApplet.html" title="class in themidibus"><span class="strong">PApplet</span></a> - Class in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">PApplet is your processing application or sketch.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#PApplet()">PApplet()</a></span> - Constructor for class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#pitch">pitch</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#pitch()">pitch()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the pitch of the Note</div>
</dd>
</dl>
<a name="_R_">
<!-- -->
</a>
<h2 class="title">R</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/PApplet.html#rawMidi(byte[])">rawMidi(byte[])</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/PApplet.html#rawMidi(byte[], long, java.lang.String)">rawMidi(byte[], long, String)</a></span> - Method in class themidibus.<a href="./themidibus/PApplet.html" title="class in themidibus">PApplet</a></dt>
<dd>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</dd>
<dt><a href="./themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">RawMidiListener</span></a> - Interface in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">A RawMidiListener can be notified of incomming MIDI messages in raw form, usually by a MidiBus object which it is connect to.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/RawMidiListener.html#rawMidiMessage(byte[])">rawMidiMessage(byte[])</a></span> - Method in interface themidibus.<a href="./themidibus/RawMidiListener.html" title="interface in themidibus">RawMidiListener</a></dt>
<dd>
<div class="block">Objects notifying this RawMidiListener of a new MIDI message call this method and pass the raw message to it.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#registerParent(java.lang.Object)">registerParent(Object)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Registers an Object as the parent in order to recieve method callbacks as per <a href="./themidibus/PApplet.html" title="class in themidibus"><code>PApplet</code></a>.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#relativePitch()">relativePitch()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the pitch of the Note relative to C.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#removeInput(int)">removeInput(int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Removes the MIDI input device specified by the index device_num.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#removeInput(java.lang.String)">removeInput(String)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Removes the MIDI input device specified by the name device_name.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#removeMidiListener(themidibus.MidiListener)">removeMidiListener(MidiListener)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Removes a given listener.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#removeOutput(int)">removeOutput(int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Removes the MIDI output device specified by the index device_num.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#removeOutput(java.lang.String)">removeOutput(String)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Removes the MIDI output device specified by the name device_name.</div>
</dd>
</dl>
<a name="_S_">
<!-- -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendControllerChange(int, int, int)">sendControllerChange(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a ControllerChange message to a channel with the specified number and value.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendControllerChange(themidibus.ControlChange)">sendControllerChange(ControlChange)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a ControllerChange message to a channel with the specified ControlChange.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(byte[])">sendMessage(byte[])</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a MIDI message with an unspecified number of bytes.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(int)">sendMessage(int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a MIDI message that takes no data bytes.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(int, int)">sendMessage(int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a MIDI message that takes only one data byte.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(int, int, int)">sendMessage(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a MIDI message that takes one or two data bytes.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(int, int, int, int)">sendMessage(int, int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a channel message which takes up to two data bytes.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendMessage(javax.sound.midi.MidiMessage)">sendMessage(MidiMessage)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a MidiMessage object.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendNoteOff(int, int, int)">sendNoteOff(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a NoteOff message to a channel with the specified pitch and velocity.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendNoteOff(themidibus.Note)">sendNoteOff(Note)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a NoteOff message to a channel with the specified Note.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendNoteOn(int, int, int)">sendNoteOn(int, int, int)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a NoteOn message to a channel with the specified pitch and velocity.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendNoteOn(themidibus.Note)">sendNoteOn(Note)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Sends a NoteOn message to a channel with the specified Note.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendTimestamps()">sendTimestamps()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns whether this MidiBus is sending timestamps along with MIDI information to the MIDI subsystem.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#sendTimestamps(boolean)">sendTimestamps(boolean)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Configure this MidiBus instance to send or not to send timestamps along with MIDI information to the MIDI subsystem.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#setBusName(java.lang.String)">setBusName(String)</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Changes the name of this MidiBus.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#setChannel(int)">setChannel(int)</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Set channel of the ControlChange</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#setChannel(int)">setChannel(int)</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Set channel of the Note</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#setNumber(int)">setNumber(int)</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Set number of the ControlChange</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#setPitch(int)">setPitch(int)</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Set pitch of the Note</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#setTicks(int)">setTicks(int)</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Set length in ticks of the Note</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#setValue(int)">setValue(int)</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Set value of the ControlChange</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#setVelocity(int)">setVelocity(int)</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Set velocity of the Note</div>
</dd>
<dt><a href="./themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">SimpleMidiListener</span></a> - Interface in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">A SimpleMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange MIDI messages, usually by a MidiBus object which it is connected to.</div>
</dd>
<dt><a href="./themidibus/StandardMidiListener.html" title="interface in themidibus"><span class="strong">StandardMidiListener</span></a> - Interface in <a href="./themidibus/package-summary.html">themidibus</a></dt>
<dd>
<div class="block">A StandardMidiListener can be notified of incomming MIDI messages in MidiMessage form, usually by a MidiBus object which it is connected to.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#stop()">stop()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Closes this MidiBus and all connections it has with other MIDI devices.</div>
</dd>
</dl>
<a name="_T_">
<!-- -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><a href="./themidibus/package-summary.html">themidibus</a> - package themidibus</dt>
<dd>
<div class="block">The MidiBus provides a simple way to access and interact with installed MIDI system resources, although it's especially designed to be used with <a target="./themidibus/_blank" href="http://www.processing.org">Processing</a>, it could easily be adapted for use in any java program.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#ticks">ticks</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#ticks()">ticks()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the length in ticks of the Note</div>
</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#timestamp">timestamp</a></span> - Variable in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#timestamp">timestamp</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#toString()">toString()</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Returns a string in the format [c:channel, n:number, v:value, ts:timestamp, b:bus_name] e.g "[c:0, n:65, v:123, ts:1234, b:bus123]".</div>
</dd>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#toString()">toString()</a></span> - Method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns a string representation of the object.</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#toString()">toString()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Returns a string in the format [Note Name, c:channel, p:pitch, v:velocity, t:ticks, ts:timestamp, b:bus_name] e.g "[C, c:0, p:65, v:123, t:0, ts:1234, b:bus123]".</div>
</dd>
</dl>
<a name="_U_">
<!-- -->
</a>
<h2 class="title">U</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/MidiBus.html#unavailableDevices()">unavailableDevices()</a></span> - Static method in class themidibus.<a href="./themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></dt>
<dd>
<div class="block">Returns the names of all the unavailable devices.</div>
</dd>
</dl>
<a name="_V_">
<!-- -->
</a>
<h2 class="title">V</h2>
<dl>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#value">value</a></span> - Variable in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/ControlChange.html#value()">value()</a></span> - Method in class themidibus.<a href="./themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></dt>
<dd>
<div class="block">Return the value of the ControlChange</div>
</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#velocity">velocity</a></span> - Variable in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="./themidibus/Note.html#velocity()">velocity()</a></span> - Method in class themidibus.<a href="./themidibus/Note.html" title="class in themidibus">Note</a></dt>
<dd>
<div class="block">Return the velocity of the Note</div>
</dd>
</dl>
<a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="./themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="./themidibus/package-tree.html">Tree</a></li>
<li><a href="./deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="./help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="./allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Generated Documentation (Untitled)</title>
<script type="text/javascript">
targetPage = "" + window.location.search;
if (targetPage != "" && targetPage != "undefined")
targetPage = targetPage.substring(1);
if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
targetPage = "undefined";
function validURL(url) {
var pos = url.indexOf(".html");
if (pos == -1 || pos != url.length - 5)
return false;
var allowNumber = false;
var allowSep = false;
var seenDot = false;
for (var i = 0; i < url.length - 5; i++) {
var ch = url.charAt(i);
if ('a' <= ch && ch <= 'z' ||
'A' <= ch && ch <= 'Z' ||
ch == '$' ||
ch == '_') {
allowNumber = true;
allowSep = true;
} else if ('0' <= ch && ch <= '9'
|| ch == '-') {
if (!allowNumber)
return false;
} else if (ch == '/' || ch == '.') {
if (!allowSep)
return false;
allowNumber = false;
allowSep = false;
if (ch == '.')
seenDot = true;
if (ch == '/' && seenDot)
return false;
} else {
return false;
}
}
return true;
}
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</script>
</head>
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
<frame src="themidibus/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
<noframes>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<h2>Frame Alert</h2>
<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="themidibus/package-summary.html">Non-frame version</a>.</p>
</noframes>
</frameset>
</html>

@ -0,0 +1,138 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Class Hierarchy</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Class Hierarchy";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For All Packages</h1>
<span class="strong">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="themidibus/package-tree.html">themidibus</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">themidibus.<a href="themidibus/ControlChange.html" title="class in themidibus"><span class="strong">ControlChange</span></a></li>
<li type="circle">themidibus.<a href="themidibus/MidiBus.html" title="class in themidibus"><span class="strong">MidiBus</span></a></li>
<li type="circle">themidibus.<a href="themidibus/Note.html" title="class in themidibus"><span class="strong">Note</span></a></li>
<li type="circle">themidibus.<a href="themidibus/PApplet.html" title="class in themidibus"><span class="strong">PApplet</span></a></li>
</ul>
</li>
</ul>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">themidibus.<a href="themidibus/MidiListener.html" title="interface in themidibus"><span class="strong">MidiListener</span></a>
<ul>
<li type="circle">themidibus.<a href="themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">ObjectMidiListener</span></a></li>
<li type="circle">themidibus.<a href="themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">RawMidiListener</span></a></li>
<li type="circle">themidibus.<a href="themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">SimpleMidiListener</span></a></li>
<li type="circle">themidibus.<a href="themidibus/StandardMidiListener.html" title="interface in themidibus"><span class="strong">StandardMidiListener</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

@ -0,0 +1,474 @@
/* Javadoc style sheet */
/*
Overall document style
*/
body {
background-color:#ffffff;
color:#353833;
font-family:Arial, Helvetica, sans-serif;
font-size:76%;
margin:0;
}
a:link, a:visited {
text-decoration:none;
color:#4c6b87;
}
a:hover, a:focus {
text-decoration:none;
color:#bb7a2a;
}
a:active {
text-decoration:none;
color:#4c6b87;
}
a[name] {
color:#353833;
}
a[name]:hover {
text-decoration:none;
color:#353833;
}
pre {
font-size:1.3em;
}
h1 {
font-size:1.8em;
}
h2 {
font-size:1.5em;
}
h3 {
font-size:1.4em;
}
h4 {
font-size:1.3em;
}
h5 {
font-size:1.2em;
}
h6 {
font-size:1.1em;
}
ul {
list-style-type:disc;
}
code, tt {
font-size:1.2em;
}
dt code {
font-size:1.2em;
}
table tr td dt code {
font-size:1.2em;
vertical-align:top;
}
sup {
font-size:.6em;
}
/*
Document title and Copyright styles
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:.8em;
z-index:200;
margin-top:-7px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
background-image:url(resources/titlebar.gif);
background-position:left top;
background-repeat:no-repeat;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
Navigation bar styles
*/
.bar {
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:1em;
margin:0;
}
.topNav {
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
}
.bottomNav {
margin-top:10px;
background-image:url(resources/background.gif);
background-repeat:repeat-x;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
}
.subNav {
background-color:#dee3e9;
border-bottom:1px solid #9eadc0;
float:left;
width:100%;
overflow:hidden;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding:3px 6px;
}
ul.subNavList li{
list-style:none;
float:left;
font-size:90%;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
}
.navBarCell1Rev {
background-image:url(resources/tab.gif);
background-color:#a88834;
color:#FFFFFF;
margin: auto 5px;
border:1px solid #c9aa44;
}
/*
Page header and footer styles
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexHeader {
margin:10px;
position:relative;
}
.indexHeader h1 {
font-size:1.3em;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 25px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:1.2em;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
margin:0 0 6px -8px;
padding:2px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
margin:0 0 6px -8px;
padding:2px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:1.0em;
}
.indexContainer h2 {
font-size:1.1em;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:1.1em;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:10px 0 10px 20px;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
List styles
*/
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:25px;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #9eadc0;
background-color:#f9f9f9;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:1px solid #9eadc0;
border-top:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
border-bottom:1px solid #9eadc0;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
Table styles
*/
.contentContainer table, .classUseContainer table, .constantValuesContainer table {
border-bottom:1px solid #9eadc0;
width:100%;
}
.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
width:100%;
}
.contentContainer .description table, .contentContainer .details table {
border-bottom:none;
}
.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
vertical-align:top;
padding-right:20px;
}
.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
padding-right:3px;
}
.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#FFFFFF;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
margin:0px;
}
caption a:link, caption a:hover, caption a:active, caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
white-space:nowrap;
padding-top:8px;
padding-left:8px;
display:block;
float:left;
background-image:url(resources/titlebar.gif);
height:18px;
}
.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
width:10px;
background-image:url(resources/titlebar_end.gif);
background-repeat:no-repeat;
background-position:top right;
position:relative;
float:left;
}
ul.blockList ul.blockList li.blockList table {
margin:0 0 12px 0px;
width:100%;
}
.tableSubHeadingColor {
background-color: #EEEEFF;
}
.altColor {
background-color:#eeeeef;
}
.rowColor {
background-color:#ffffff;
}
.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
text-align:left;
padding:3px 3px 3px 7px;
}
th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
background:#dee3e9;
border-top:1px solid #9eadc0;
border-bottom:1px solid #9eadc0;
text-align:left;
padding:3px 3px 3px 7px;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
td.colFirst, th.colFirst {
border-left:1px solid #9eadc0;
white-space:nowrap;
}
td.colLast, th.colLast {
border-right:1px solid #9eadc0;
}
td.colOne, th.colOne {
border-right:1px solid #9eadc0;
border-left:1px solid #9eadc0;
}
table.overviewSummary {
padding:0px;
margin-left:0px;
}
table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
table.overviewSummary td.colOne, table.overviewSummary th.colOne {
width:25%;
vertical-align:middle;
}
table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
width:25%;
vertical-align:middle;
}
/*
Content styles
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:.9em;
}
.block {
display:block;
margin:3px 0 0 0;
}
.strong {
font-weight:bold;
}

@ -0,0 +1,509 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:48 EDT 2015 -->
<title>ControlChange</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ControlChange";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../themidibus/MidiBus.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/ControlChange.html" target="_top">Frames</a></li>
<li><a href="ControlChange.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Class ControlChange" class="title">Class ControlChange</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>themidibus.ControlChange</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">ControlChange</span>
extends java.lang.Object</pre>
<div class="block">The ControlChange class represents a change in value from a controller.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith, Marc Koderer</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/Note.html" title="class in themidibus"><code>Note</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#bus_name">bus_name</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#channel">channel</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#number">number</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#timestamp">timestamp</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#value">value</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../themidibus/ControlChange.html#ControlChange(int, int, int)">ControlChange</a></strong>(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</code>
<div class="block">Constructs a ControlChange object</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../themidibus/ControlChange.html#ControlChange(int, int, int, long, java.lang.String)">ControlChange</a></strong>(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Constructs a ControlChange object</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#channel()">channel</a></strong>()</code>
<div class="block">Return the channel of the ControlChange</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#equals(java.lang.Object)">equals</a></strong>(java.lang.Object&nbsp;obj)</code>
<div class="block">Check if all fields are equal.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#number()">number</a></strong>()</code>
<div class="block">Return the number of the ControlChange</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#setChannel(int)">setChannel</a></strong>(int&nbsp;channel)</code>
<div class="block">Set channel of the ControlChange</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#setNumber(int)">setNumber</a></strong>(int&nbsp;number)</code>
<div class="block">Set number of the ControlChange</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#setValue(int)">setValue</a></strong>(int&nbsp;value)</code>
<div class="block">Set value of the ControlChange</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#toString()">toString</a></strong>()</code>
<div class="block">Returns a string in the format [c:channel, n:number, v:value, ts:timestamp, b:bus_name] e.g "[c:0, n:65, v:123, ts:1234, b:bus123]".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ControlChange.html#value()">value</a></strong>()</code>
<div class="block">Return the value of the ControlChange</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="channel">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>channel</h4>
<pre>public&nbsp;int channel</pre>
</li>
</ul>
<a name="number">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>number</h4>
<pre>public&nbsp;int number</pre>
</li>
</ul>
<a name="value">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>value</h4>
<pre>public&nbsp;int value</pre>
</li>
</ul>
<a name="timestamp">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timestamp</h4>
<pre>public&nbsp;long timestamp</pre>
</li>
</ul>
<a name="bus_name">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>bus_name</h4>
<pre>public&nbsp;java.lang.String bus_name</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ControlChange(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ControlChange</h4>
<pre>public&nbsp;ControlChange(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</pre>
<div class="block">Constructs a ControlChange object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the ControlChange</dd><dd><code>number</code> - the number of the ControlChange</dd><dd><code>value</code> - the value of the ControlChange</dd></dl>
</li>
</ul>
<a name="ControlChange(int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ControlChange</h4>
<pre>public&nbsp;ControlChange(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Constructs a ControlChange object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the ControlChange</dd><dd><code>number</code> - the number of the ControlChange</dd><dd><code>value</code> - the value of the ControlChange</dd><dd><code>timestamp</code> - the timestamp of the ControlChange</dd><dd><code>bus_name</code> - the name of MidiBus associated with the ControlChange</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setChannel(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setChannel</h4>
<pre>public&nbsp;void&nbsp;setChannel(int&nbsp;channel)</pre>
<div class="block">Set channel of the ControlChange</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel to set</dd></dl>
</li>
</ul>
<a name="channel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>channel</h4>
<pre>public&nbsp;int&nbsp;channel()</pre>
<div class="block">Return the channel of the ControlChange</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the channel</dd></dl>
</li>
</ul>
<a name="setNumber(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNumber</h4>
<pre>public&nbsp;void&nbsp;setNumber(int&nbsp;number)</pre>
<div class="block">Set number of the ControlChange</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>number</code> - the number to set</dd></dl>
</li>
</ul>
<a name="number()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>number</h4>
<pre>public&nbsp;int&nbsp;number()</pre>
<div class="block">Return the number of the ControlChange</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number</dd></dl>
</li>
</ul>
<a name="setValue(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValue</h4>
<pre>public&nbsp;void&nbsp;setValue(int&nbsp;value)</pre>
<div class="block">Set value of the ControlChange</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the value to set</dd></dl>
</li>
</ul>
<a name="value()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>value</h4>
<pre>public&nbsp;int&nbsp;value()</pre>
<div class="block">Return the value of the ControlChange</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns a string in the format [c:channel, n:number, v:value, ts:timestamp, b:bus_name] e.g "[c:0, n:65, v:123, ts:1234, b:bus123]". If timestamp or bus_name isn't set, it is omitted.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the string representation</dd></dl>
</li>
</ul>
<a name="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(java.lang.Object&nbsp;obj)</pre>
<div class="block">Check if all fields are equal.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>true if both objects can be considered to be equals</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../themidibus/MidiBus.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/ControlChange.html" target="_top">Frames</a></li>
<li><a href="ControlChange.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,168 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>MidiListener</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MidiListener";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/MidiBus.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/Note.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/MidiListener.html" target="_top">Frames</a></li>
<li><a href="MidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Interface MidiListener" class="title">Interface MidiListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus">ObjectMidiListener</a>, <a href="../themidibus/RawMidiListener.html" title="interface in themidibus">RawMidiListener</a>, <a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus">SimpleMidiListener</a>, <a href="../themidibus/StandardMidiListener.html" title="interface in themidibus">StandardMidiListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">MidiListener</span></pre>
<div class="block">This is a placeholder interface which makes it easier to program and manipulate objects which implement subinterfaces of MidiListener like <a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>, <a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a> or <a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>. It makes it easier to create lists and arrays of such object and allows for a standard method <a href="../themidibus/MidiBus.html#addMidiListener(themidibus.MidiListener)"><code>MidiBus.addMidiListener(MidiListener listener)</code></a> to add any type of listener to a MidiBus object.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>,
<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a>,
<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a></dd></dl>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/MidiBus.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/Note.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/MidiListener.html" target="_top">Frames</a></li>
<li><a href="MidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,655 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>Note</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Note";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/MidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/Note.html" target="_top">Frames</a></li>
<li><a href="Note.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Class Note" class="title">Class Note</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>themidibus.Note</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">Note</span>
extends java.lang.Object</pre>
<div class="block">The Note class represents a pressed or released key.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith, Marc Koderer</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/ControlChange.html" title="class in themidibus"><code>ControlChange</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#bus_name">bus_name</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#channel">channel</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#pitch">pitch</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#ticks">ticks</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#timestamp">timestamp</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#velocity">velocity</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../themidibus/Note.html#Note(int, int, int)">Note</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</code>
<div class="block">Constructs a Note object</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../themidibus/Note.html#Note(int, int, int, int)">Note</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
int&nbsp;ticks)</code>
<div class="block">Constructs a Note object</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../themidibus/Note.html#Note(int, int, int, int, long, java.lang.String)">Note</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
int&nbsp;ticks,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Constructs a Note object</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../themidibus/Note.html#Note(int, int, int, long, java.lang.String)">Note</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Constructs a Note object</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#channel()">channel</a></strong>()</code>
<div class="block">Return the channel of the Note</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#equals(java.lang.Object)">equals</a></strong>(java.lang.Object&nbsp;obj)</code>
<div class="block">Check if all fields are equal.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#name()">name</a></strong>()</code>
<div class="block">Return the name of the note, e.g.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#octave()">octave</a></strong>()</code>
<div class="block">Return the octave of the Note.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#pitch()">pitch</a></strong>()</code>
<div class="block">Return the pitch of the Note</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#relativePitch()">relativePitch</a></strong>()</code>
<div class="block">Return the pitch of the Note relative to C.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#setChannel(int)">setChannel</a></strong>(int&nbsp;channel)</code>
<div class="block">Set channel of the Note</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#setPitch(int)">setPitch</a></strong>(int&nbsp;pitch)</code>
<div class="block">Set pitch of the Note</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#setTicks(int)">setTicks</a></strong>(int&nbsp;ticks)</code>
<div class="block">Set length in ticks of the Note</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#setVelocity(int)">setVelocity</a></strong>(int&nbsp;velocity)</code>
<div class="block">Set velocity of the Note</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#ticks()">ticks</a></strong>()</code>
<div class="block">Return the length in ticks of the Note</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#toString()">toString</a></strong>()</code>
<div class="block">Returns a string in the format [Note Name, c:channel, p:pitch, v:velocity, t:ticks, ts:timestamp, b:bus_name] e.g "[C, c:0, p:65, v:123, t:0, ts:1234, b:bus123]".</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../themidibus/Note.html#velocity()">velocity</a></strong>()</code>
<div class="block">Return the velocity of the Note</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="channel">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>channel</h4>
<pre>public&nbsp;int channel</pre>
</li>
</ul>
<a name="pitch">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pitch</h4>
<pre>public&nbsp;int pitch</pre>
</li>
</ul>
<a name="velocity">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>velocity</h4>
<pre>public&nbsp;int velocity</pre>
</li>
</ul>
<a name="ticks">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ticks</h4>
<pre>public&nbsp;long ticks</pre>
</li>
</ul>
<a name="timestamp">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timestamp</h4>
<pre>public&nbsp;long timestamp</pre>
</li>
</ul>
<a name="bus_name">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>bus_name</h4>
<pre>public&nbsp;java.lang.String bus_name</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Note(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Note</h4>
<pre>public&nbsp;Note(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</pre>
<div class="block">Constructs a Note object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the Note</dd><dd><code>pitch</code> - the pitch of the Note</dd><dd><code>velocity</code> - the velocity of the Note</dd></dl>
</li>
</ul>
<a name="Note(int, int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Note</h4>
<pre>public&nbsp;Note(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
int&nbsp;ticks)</pre>
<div class="block">Constructs a Note object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the Note</dd><dd><code>pitch</code> - the pitch of the Note</dd><dd><code>velocity</code> - the velocity of the Note</dd><dd><code>ticks</code> - the length in ticks of the Note</dd></dl>
</li>
</ul>
<a name="Note(int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Note</h4>
<pre>public&nbsp;Note(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Constructs a Note object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the Note</dd><dd><code>pitch</code> - the pitch of the Note</dd><dd><code>velocity</code> - the velocity of the Note</dd><dd><code>timestamp</code> - the timestamp of the Note</dd><dd><code>bus_name</code> - the name of MidiBus associated with the Note</dd></dl>
</li>
</ul>
<a name="Note(int, int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Note</h4>
<pre>public&nbsp;Note(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
int&nbsp;ticks,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Constructs a Note object</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel of the Note</dd><dd><code>pitch</code> - the pitch of the Note</dd><dd><code>velocity</code> - the velocity of the Note</dd><dd><code>ticks</code> - the length in ticks of the Note</dd><dd><code>timestamp</code> - the timestamp of the Note</dd><dd><code>bus_name</code> - the name of MidiBus associated with the Note</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setChannel(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setChannel</h4>
<pre>public&nbsp;void&nbsp;setChannel(int&nbsp;channel)</pre>
<div class="block">Set channel of the Note</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel to set</dd></dl>
</li>
</ul>
<a name="channel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>channel</h4>
<pre>public&nbsp;int&nbsp;channel()</pre>
<div class="block">Return the channel of the Note</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the channel</dd></dl>
</li>
</ul>
<a name="setPitch(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPitch</h4>
<pre>public&nbsp;void&nbsp;setPitch(int&nbsp;pitch)</pre>
<div class="block">Set pitch of the Note</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pitch</code> - the pitch to set</dd></dl>
</li>
</ul>
<a name="pitch()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pitch</h4>
<pre>public&nbsp;int&nbsp;pitch()</pre>
<div class="block">Return the pitch of the Note</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the pitch</dd></dl>
</li>
</ul>
<a name="relativePitch()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relativePitch</h4>
<pre>public&nbsp;int&nbsp;relativePitch()</pre>
<div class="block">Return the pitch of the Note relative to C. Range is 0-12.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the relative pitch</dd></dl>
</li>
</ul>
<a name="octave()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>octave</h4>
<pre>public&nbsp;int&nbsp;octave()</pre>
<div class="block">Return the octave of the Note. Octaves are divided by the note C</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the octave</dd></dl>
</li>
</ul>
<a name="name()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public&nbsp;java.lang.String&nbsp;name()</pre>
<div class="block">Return the name of the note, e.g. "C" or "G#".</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the note name</dd></dl>
</li>
</ul>
<a name="setVelocity(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVelocity</h4>
<pre>public&nbsp;void&nbsp;setVelocity(int&nbsp;velocity)</pre>
<div class="block">Set velocity of the Note</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>velocity</code> - the velocity to set</dd></dl>
</li>
</ul>
<a name="velocity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>velocity</h4>
<pre>public&nbsp;int&nbsp;velocity()</pre>
<div class="block">Return the velocity of the Note</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the velocity</dd></dl>
</li>
</ul>
<a name="setTicks(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTicks</h4>
<pre>public&nbsp;void&nbsp;setTicks(int&nbsp;ticks)</pre>
<div class="block">Set length in ticks of the Note</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ticks</code> - the ticks value to set</dd></dl>
</li>
</ul>
<a name="ticks()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ticks</h4>
<pre>public&nbsp;long&nbsp;ticks()</pre>
<div class="block">Return the length in ticks of the Note</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the ticks length</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns a string in the format [Note Name, c:channel, p:pitch, v:velocity, t:ticks, ts:timestamp, b:bus_name] e.g "[C, c:0, p:65, v:123, t:0, ts:1234, b:bus123]". If ticks, timestamp or bus_name isn't set, it is omitted.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the string representation</dd></dl>
</li>
</ul>
<a name="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(java.lang.Object&nbsp;obj)</pre>
<div class="block">Check if all fields are equal.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>true if both objects can be considered to be equals</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/MidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/Note.html" target="_top">Frames</a></li>
<li><a href="Note.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,257 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>ObjectMidiListener</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ObjectMidiListener";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/Note.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/PApplet.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/ObjectMidiListener.html" target="_top">Frames</a></li>
<li><a href="ObjectMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Interface ObjectMidiListener" class="title">Interface ObjectMidiListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">ObjectMidiListener</span>
extends <a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></pre>
<div class="block">A ObjectMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange events via <a href="../themidibus/Note.html" title="class in themidibus"><code>Note</code></a> and <a href="../themidibus/ControlChange.html" title="class in themidibus"><code>ControlChange</code></a> objects, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming messages in some useful way.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith, Marc Koderer</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiListener.html" title="interface in themidibus"><code>MidiListener</code></a>,
<a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>,
<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a>,
<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>,
<a href="../themidibus/Note.html" title="class in themidibus"><code>Note</code></a>,
<a href="../themidibus/ControlChange.html" title="class in themidibus"><code>ControlChange</code></a>,
<a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ObjectMidiListener.html#controllerChange(themidibus.ControlChange)">controllerChange</a></strong>(<a href="../themidibus/ControlChange.html" title="class in themidibus">ControlChange</a>&nbsp;change)</code>
<div class="block">Objects notifying this ObjectMidiListener of a new ControllerChange events call this method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ObjectMidiListener.html#noteOff(themidibus.Note)">noteOff</a></strong>(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</code>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOff events call this method.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/ObjectMidiListener.html#noteOn(themidibus.Note)">noteOn</a></strong>(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</code>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOn events call this method.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="noteOn(themidibus.Note)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOn</h4>
<pre>void&nbsp;noteOn(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</pre>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOn events call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>note</code> - the note object associated with this event</dd></dl>
</li>
</ul>
<a name="noteOff(themidibus.Note)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOff</h4>
<pre>void&nbsp;noteOff(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</pre>
<div class="block">Objects notifying this ObjectMidiListener of a new NoteOff events call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>note</code> - the note object associated with this event</dd></dl>
</li>
</ul>
<a name="controllerChange(themidibus.ControlChange)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>controllerChange</h4>
<pre>void&nbsp;controllerChange(<a href="../themidibus/ControlChange.html" title="class in themidibus">ControlChange</a>&nbsp;change)</pre>
<div class="block">Objects notifying this ObjectMidiListener of a new ControllerChange events call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>change</code> - the ControlChange object associated with this event</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/Note.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/PApplet.html" title="class in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/ObjectMidiListener.html" target="_top">Frames</a></li>
<li><a href="ObjectMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,519 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>PApplet</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PApplet";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/PApplet.html" target="_top">Frames</a></li>
<li><a href="PApplet.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Class PApplet" class="title">Class PApplet</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>themidibus.PApplet</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">PApplet</span>
extends java.lang.Object</pre>
<div class="block">PApplet is your processing application or sketch. In it you can implement the following methods which will be called whenerever a MidiBus object attached to the PApplet, recieves a new incomming MIDI message of the appropriate type.
<p>
<i><b style="color:red;">Note:</b> This page is a dummy page for documentation of the MidiBus' extention of the regular PApplet's functionality, for the full documentation of PApplet please visits the <a target="_blank" href="http://dev.processing.org/reference/core/javadoc/processing/core/PApplet.html">Processing javadocs</a></i></div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a>,
<a href="../themidibus/MidiListener.html" title="interface in themidibus"><code>MidiListener</code></a>,
<a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>,
<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>,
<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../themidibus/PApplet.html#PApplet()">PApplet</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#controllerChange(themidibus.ControlChange)">controllerChange</a></strong>(<a href="../themidibus/ControlChange.html" title="class in themidibus">ControlChange</a>&nbsp;change)</code>
<div class="block">Is passed a ControlChange object representing controlChange event</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#controllerChange(int, int, int)">controllerChange</a></strong>(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</code>
<div class="block">Is passed the channel, controller number and contoller value associated with every new ContollerChange MIDI message recieved by a MidiBus attached to this applet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#controllerChange(int, int, int, long, java.lang.String)">controllerChange</a></strong>(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage)">midiMessage</a></strong>(javax.sound.midi.MidiMessage&nbsp;message)</code>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage, long, java.lang.String)">midiMessage</a></strong>(javax.sound.midi.MidiMessage&nbsp;message,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOff(int, int, int)">noteOff</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</code>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOff(int, int, int, long, java.lang.String)">noteOff</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOff(themidibus.Note)">noteOff</a></strong>(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</code>
<div class="block">Is passed a Note object representing noteOff event</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOn(int, int, int)">noteOn</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</code>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOn(int, int, int, long, java.lang.String)">noteOn</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#noteOn(themidibus.Note)">noteOn</a></strong>(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</code>
<div class="block">Is passed a Note object representing noteOn event</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#rawMidi(byte[])">rawMidi</a></strong>(byte[]&nbsp;data)</code>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/PApplet.html#rawMidi(byte[], long, java.lang.String)">rawMidi</a></strong>(byte[]&nbsp;data,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</code>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PApplet()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PApplet</h4>
<pre>public&nbsp;PApplet()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="controllerChange(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controllerChange</h4>
<pre>public&nbsp;void&nbsp;controllerChange(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</pre>
<div class="block">Is passed the channel, controller number and contoller value associated with every new ContollerChange MIDI message recieved by a MidiBus attached to this applet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the ContollerChange arrived</dd><dd><code>number</code> - the controller number associated with the ContollerChange</dd><dd><code>value</code> - the controller value associated with the ContollerChange</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#controllerChange(int, int, int, long, java.lang.String)"><code>controllerChange(int channel, int pitch, int velocity, long timestamp, String bus_name)</code></a></dd></dl>
</li>
</ul>
<a name="controllerChange(int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controllerChange</h4>
<pre>public&nbsp;void&nbsp;controllerChange(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the ContollerChange arrived</dd><dd><code>number</code> - the controller number associated with the ContollerChange</dd><dd><code>value</code> - the controller value associated with the ContollerChange</dd><dd><code>timestamp</code> - the timestamp on the midi message</dd><dd><code>bus_name</code> - the name of MidiBus which recieved the ContollerChange</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#controllerChange(int, int, int)"><code>controllerChange(int channel, int pitch, int velocity)</code></a></dd></dl>
</li>
</ul>
<a name="controllerChange(themidibus.ControlChange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controllerChange</h4>
<pre>public&nbsp;void&nbsp;controllerChange(<a href="../themidibus/ControlChange.html" title="class in themidibus">ControlChange</a>&nbsp;change)</pre>
<div class="block">Is passed a ControlChange object representing controlChange event</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>change</code> - the ControlChange object</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#controllerChange(int, int, int)"><code>controllerChange(int channel, int pitch, int velocity)</code></a>,
<a href="../themidibus/ObjectMidiListener.html#controllerChange(themidibus.ControlChange)"><code>ObjectMidiListener.controllerChange(ControlChange)</code></a></dd></dl>
</li>
</ul>
<a name="midiMessage(javax.sound.midi.MidiMessage)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>midiMessage</h4>
<pre>public&nbsp;void&nbsp;midiMessage(javax.sound.midi.MidiMessage&nbsp;message)</pre>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - the MidiMessage recieved</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage, long, java.lang.String)"><code>midiMessage(MidiMessage message, long timestamp, String bus_name)</code></a></dd></dl>
</li>
</ul>
<a name="midiMessage(javax.sound.midi.MidiMessage, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>midiMessage</h4>
<pre>public&nbsp;void&nbsp;midiMessage(javax.sound.midi.MidiMessage&nbsp;message,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - the MidiMessage recieved</dd><dd><code>timestamp</code> - the timestamp on the midi message</dd><dd><code>bus_name</code> - the name of MidiBus which recieved the MIDI message</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#midiMessage(javax.sound.midi.MidiMessage)"><code>midiMessage(MidiMessage message)</code></a></dd></dl>
</li>
</ul>
<a name="noteOff(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOff</h4>
<pre>public&nbsp;void&nbsp;noteOff(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</pre>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOff arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOff</dd><dd><code>velocity</code> - the velocity associated with the NoteOff</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOff(int, int, int, long, java.lang.String)"><code>noteOff(int channel, int pitch, int velocity, long timestamp, String bus_name)</code></a></dd></dl>
</li>
</ul>
<a name="noteOff(int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOff</h4>
<pre>public&nbsp;void&nbsp;noteOff(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOff arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOff</dd><dd><code>velocity</code> - the velocity associated with the NoteOff</dd><dd><code>timestamp</code> - the timestamp on the midi message</dd><dd><code>bus_name</code> - the name of MidiBus which recieved the NoteOff</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOff(int, int, int)"><code>noteOff(int channel, int pitch, int velocity)</code></a></dd></dl>
</li>
</ul>
<a name="noteOff(themidibus.Note)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOff</h4>
<pre>public&nbsp;void&nbsp;noteOff(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</pre>
<div class="block">Is passed a Note object representing noteOff event</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>note</code> - the Note object</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOff(int, int, int)"><code>noteOff(int channel, int pitch, int velocity)</code></a>,
<a href="../themidibus/ObjectMidiListener.html#noteOn(themidibus.Note)"><code>ObjectMidiListener.noteOn(Note)</code></a></dd></dl>
</li>
</ul>
<a name="noteOn(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOn</h4>
<pre>public&nbsp;void&nbsp;noteOn(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</pre>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOn arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOn</dd><dd><code>velocity</code> - the velocity associated with the NoteOn</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOn(int, int, int, long, java.lang.String)"><code>noteOn(int channel, int pitch, int velocity, long timestamp, String bus_name)</code></a></dd></dl>
</li>
</ul>
<a name="noteOn(int, int, int, long, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOn</h4>
<pre>public&nbsp;void&nbsp;noteOn(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOn arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOn</dd><dd><code>velocity</code> - the velocity associated with the NoteOn</dd><dd><code>timestamp</code> - the timestamp on the midi message</dd><dd><code>bus_name</code> - the name of MidiBus which recieved the NoteOn</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOn(int, int, int)"><code>noteOn(int channel, int pitch, int velocity)</code></a></dd></dl>
</li>
</ul>
<a name="noteOn(themidibus.Note)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOn</h4>
<pre>public&nbsp;void&nbsp;noteOn(<a href="../themidibus/Note.html" title="class in themidibus">Note</a>&nbsp;note)</pre>
<div class="block">Is passed a Note object representing noteOn event</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>note</code> - the Note object</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#noteOn(int, int, int)"><code>noteOn(int channel, int pitch, int velocity)</code></a>,
<a href="../themidibus/ObjectMidiListener.html#noteOff(themidibus.Note)"><code>ObjectMidiListener.noteOff(Note)</code></a></dd></dl>
</li>
</ul>
<a name="rawMidi(byte[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rawMidi</h4>
<pre>public&nbsp;void&nbsp;rawMidi(byte[]&nbsp;data)</pre>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - the raw data associated with the MIDI message</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#rawMidi(byte[], long, java.lang.String)"><code>rawMidi(byte[] data, long timestamp, String bus_name)</code></a></dd></dl>
</li>
</ul>
<a name="rawMidi(byte[], long, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rawMidi</h4>
<pre>public&nbsp;void&nbsp;rawMidi(byte[]&nbsp;data,
long&nbsp;timestamp,
java.lang.String&nbsp;bus_name)</pre>
<div class="block">Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - the raw data associated with the MIDI message</dd><dd><code>timestamp</code> - the timestamp on the midi message</dd><dd><code>bus_name</code> - the name of MidiBus which recieved the MIDI message</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/PApplet.html#rawMidi(byte[])"><code>rawMidi(byte[] data)</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/PApplet.html" target="_top">Frames</a></li>
<li><a href="PApplet.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,221 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>RawMidiListener</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RawMidiListener";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/PApplet.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/RawMidiListener.html" target="_top">Frames</a></li>
<li><a href="RawMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Interface RawMidiListener" class="title">Interface RawMidiListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">RawMidiListener</span>
extends <a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></pre>
<div class="block">A RawMidiListener can be notified of incomming MIDI messages in raw form, usually by a MidiBus object which it is connect to. Typically it would analyse and react to incomming MIDI messages in some useful way.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiListener.html" title="interface in themidibus"><code>MidiListener</code></a>,
<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a>,
<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/RawMidiListener.html#rawMidiMessage(byte[])">rawMidiMessage</a></strong>(byte[]&nbsp;data)</code>
<div class="block">Objects notifying this RawMidiListener of a new MIDI message call this method and pass the raw message to it.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="rawMidiMessage(byte[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rawMidiMessage</h4>
<pre>void&nbsp;rawMidiMessage(byte[]&nbsp;data)</pre>
<div class="block">Objects notifying this RawMidiListener of a new MIDI message call this method and pass the raw message to it.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - the data bytes that make up the MIDI message</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/PApplet.html" title="class in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/RawMidiListener.html" target="_top">Frames</a></li>
<li><a href="RawMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,267 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>SimpleMidiListener</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SimpleMidiListener";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/SimpleMidiListener.html" target="_top">Frames</a></li>
<li><a href="SimpleMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Interface SimpleMidiListener" class="title">Interface SimpleMidiListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">SimpleMidiListener</span>
extends <a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></pre>
<div class="block">A SimpleMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange MIDI messages, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming MIDI messages in some useful way.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiListener.html" title="interface in themidibus"><code>MidiListener</code></a>,
<a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>,
<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/SimpleMidiListener.html#controllerChange(int, int, int)">controllerChange</a></strong>(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</code>
<div class="block">Objects notifying this SimpleMidiListener of a new ControllerChange MIDI message call this method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/SimpleMidiListener.html#noteOff(int, int, int)">noteOff</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</code>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOff MIDI message call this method.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/SimpleMidiListener.html#noteOn(int, int, int)">noteOn</a></strong>(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</code>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOn MIDI message call this method.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="noteOn(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOn</h4>
<pre>void&nbsp;noteOn(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</pre>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOn MIDI message call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOn arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOn</dd><dd><code>velocity</code> - the velocity associated with the NoteOn</dd></dl>
</li>
</ul>
<a name="noteOff(int, int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noteOff</h4>
<pre>void&nbsp;noteOff(int&nbsp;channel,
int&nbsp;pitch,
int&nbsp;velocity)</pre>
<div class="block">Objects notifying this SimpleMidiListener of a new NoteOff MIDI message call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the NoteOff arrived</dd><dd><code>pitch</code> - the pitch associated with the NoteOff</dd><dd><code>velocity</code> - the velocity associated with the NoteOff</dd></dl>
</li>
</ul>
<a name="controllerChange(int, int, int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>controllerChange</h4>
<pre>void&nbsp;controllerChange(int&nbsp;channel,
int&nbsp;number,
int&nbsp;value)</pre>
<div class="block">Objects notifying this SimpleMidiListener of a new ControllerChange MIDI message call this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>channel</code> - the channel on which the ContollerChange arrived</dd><dd><code>number</code> - the controller number associated with the ContollerChange</dd><dd><code>value</code> - the controller value associated with the ContollerChange</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li><a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/SimpleMidiListener.html" target="_top">Frames</a></li>
<li><a href="SimpleMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,224 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>StandardMidiListener</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="StandardMidiListener";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/StandardMidiListener.html" target="_top">Frames</a></li>
<li><a href="StandardMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">themidibus</div>
<h2 title="Interface StandardMidiListener" class="title">Interface StandardMidiListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">StandardMidiListener</span>
extends <a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></pre>
<div class="block">A StandardMidiListener can be notified of incomming MIDI messages in MidiMessage form, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming MIDI messages in some useful way.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../themidibus/MidiListener.html" title="interface in themidibus"><code>MidiListener</code></a>,
<a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>,
<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a>,
<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><code>ObjectMidiListener</code></a>,
<a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a>,
<code>MidiMessage</code></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../themidibus/StandardMidiListener.html#midiMessage(javax.sound.midi.MidiMessage, long)">midiMessage</a></strong>(javax.sound.midi.MidiMessage&nbsp;message,
long&nbsp;timeStamp)</code>
<div class="block">Objects notifying this StandardMidiListener of a new MIDI message call this method and pass the MidiMessage</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="midiMessage(javax.sound.midi.MidiMessage, long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>midiMessage</h4>
<pre>void&nbsp;midiMessage(javax.sound.midi.MidiMessage&nbsp;message,
long&nbsp;timeStamp)</pre>
<div class="block">Objects notifying this StandardMidiListener of a new MIDI message call this method and pass the MidiMessage</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - the MidiMessage received</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/StandardMidiListener.html" target="_top">Frames</a></li>
<li><a href="StandardMidiListener.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,30 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>themidibus</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<h1 class="bar"><a href="../themidibus/package-summary.html" target="classFrame">themidibus</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="MidiListener.html" title="interface in themidibus" target="classFrame"><i>MidiListener</i></a></li>
<li><a href="ObjectMidiListener.html" title="interface in themidibus" target="classFrame"><i>ObjectMidiListener</i></a></li>
<li><a href="RawMidiListener.html" title="interface in themidibus" target="classFrame"><i>RawMidiListener</i></a></li>
<li><a href="SimpleMidiListener.html" title="interface in themidibus" target="classFrame"><i>SimpleMidiListener</i></a></li>
<li><a href="StandardMidiListener.html" title="interface in themidibus" target="classFrame"><i>StandardMidiListener</i></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="ControlChange.html" title="class in themidibus" target="classFrame">ControlChange</a></li>
<li><a href="MidiBus.html" title="class in themidibus" target="classFrame">MidiBus</a></li>
<li><a href="Note.html" title="class in themidibus" target="classFrame">Note</a></li>
<li><a href="PApplet.html" title="class in themidibus" target="classFrame">PApplet</a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,218 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>themidibus</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="themidibus";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Package</li>
<li>Next Package</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;themidibus</h1>
<div class="docSummary">
<div class="block">The MidiBus provides a simple way to access and interact with installed MIDI system resources, although it's especially designed to be used with <a target="_blank" href="http://www.processing.org">Processing</a>, it could easily be adapted for use in any java program.</div>
</div>
<p>See:&nbsp;<a href="#package_description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../themidibus/MidiListener.html" title="interface in themidibus">MidiListener</a></td>
<td class="colLast">
<div class="block">This is a placeholder interface which makes it easier to program and manipulate objects which implement subinterfaces of MidiListener like <a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><code>RawMidiListener</code></a>, <a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><code>SimpleMidiListener</code></a> or <a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><code>StandardMidiListener</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus">ObjectMidiListener</a></td>
<td class="colLast">
<div class="block">A ObjectMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange events via <a href="../themidibus/Note.html" title="class in themidibus"><code>Note</code></a> and <a href="../themidibus/ControlChange.html" title="class in themidibus"><code>ControlChange</code></a> objects, usually by a MidiBus object which it is connected to.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../themidibus/RawMidiListener.html" title="interface in themidibus">RawMidiListener</a></td>
<td class="colLast">
<div class="block">A RawMidiListener can be notified of incomming MIDI messages in raw form, usually by a MidiBus object which it is connect to.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus">SimpleMidiListener</a></td>
<td class="colLast">
<div class="block">A SimpleMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange MIDI messages, usually by a MidiBus object which it is connected to.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../themidibus/StandardMidiListener.html" title="interface in themidibus">StandardMidiListener</a></td>
<td class="colLast">
<div class="block">A StandardMidiListener can be notified of incomming MIDI messages in MidiMessage form, usually by a MidiBus object which it is connected to.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../themidibus/ControlChange.html" title="class in themidibus">ControlChange</a></td>
<td class="colLast">
<div class="block">The ControlChange class represents a change in value from a controller.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../themidibus/MidiBus.html" title="class in themidibus">MidiBus</a></td>
<td class="colLast">
<div class="block">The MidiBus class provides a simple way to send and receive MIDI within Processing sketches.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../themidibus/Note.html" title="class in themidibus">Note</a></td>
<td class="colLast">
<div class="block">The Note class represents a pressed or released key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../themidibus/PApplet.html" title="class in themidibus">PApplet</a></td>
<td class="colLast">
<div class="block">PApplet is your processing application or sketch.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package_description">
<!-- -->
</a>
<h2 title="Package themidibus Description">Package themidibus Description</h2>
<div class="block">The MidiBus provides a simple way to access and interact with installed MIDI system resources, although it's especially designed to be used with <a target="_blank" href="http://www.processing.org">Processing</a>, it could easily be adapted for use in any java program.
<p>
<b style="color:red;">IMPORTANT</b>: Mac users may want to install <a href="http://www.humatic.de/htools/mmj.htm">mmj, <i>a Mac OS X universal binary java MIDI subsystem</i></a> - or an equivalent third party MIDI subsystem - because the apple implementation is lacking support for a number of advanced MIDI features. Mmj is recommended because it works, it's free and it's almost open source (CC licence). Please check README.md for more information. If you do use MMJ you will want to set <a href="../themidibus/MidiBus.html#sendTimestamps(boolean)"><code>MidiBus.sendTimestamps(boolean sendTimestamps)</code></a> to false, otherwise messages won't be sent.
<p>
Keeping with the spirit of Processing's easy to use sketching/prototyping style, the MidiBus offers a clean and simple way to get at MIDI ressources. Getting the basic functionality of the MidiBus up and running in a sketch is a matter of only a few line. The <a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a> class provides everything needed send and receive MIDI inside a sketch. To jump right into the Midibus, either refer to the paragraph titled "Typical Implementation, Simple" in the description for the <a href="../themidibus/MidiBus.html" title="class in themidibus"><code>MidiBus</code></a> class, or check out the code examples distributed with this library.
<hr><p>
It is important to understand that the MidiBus offers little functionality that isn't available from Java's native <a target="_blank" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi</a> package. Anyone interested in working with MIDI in Java should take the time to read the documentation for the <a target="_blank" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi</a>. It offers a more full featured and flexible alternative to this package, although it does do so at the cost of added complexity. In addition, it may be worthwhile to skim <a href="http://java.sun.com/docs/books/tutorial/sound/index.html">the "official" Java Tutorial</a> for the javax.sound.* packages.
<hr>
<h2>Related Documentation</h2>
<ul>
<li><a href="http://www.smallbutdigital.com/themidibus.php">The MidiBus website: examples, updates, documentation, etc</a></li>
<li><a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi Package</a></li>
<li><a href="http://java.sun.com/docs/books/tutorial/sound/index.html">Java Sound Tutorials</a></li>
<li><a href="http://www.srm.com/qtma/davidsmidispec.html">MIDI Specification Reference</a></li>
<li><a href="http://www.indiana.edu/~emusic/cntrlnumb.html">Standard Controller Numbers</a></li>
</ul></div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>008</dd>
<dt><span class="strong">Author:</span></dt>
<dd>Severin Smith</dd></dl>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Package</li>
<li>Next Package</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,134 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Wed Sep 09 14:00:49 EDT 2015 -->
<title>themidibus Class Hierarchy</title>
<meta name="date" content="2015-09-09">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="themidibus Class Hierarchy";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For Package themidibus</h1>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">themidibus.<a href="../themidibus/ControlChange.html" title="class in themidibus"><span class="strong">ControlChange</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/MidiBus.html" title="class in themidibus"><span class="strong">MidiBus</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/Note.html" title="class in themidibus"><span class="strong">Note</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/PApplet.html" title="class in themidibus"><span class="strong">PApplet</span></a></li>
</ul>
</li>
</ul>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">themidibus.<a href="../themidibus/MidiListener.html" title="interface in themidibus"><span class="strong">MidiListener</span></a>
<ul>
<li type="circle">themidibus.<a href="../themidibus/ObjectMidiListener.html" title="interface in themidibus"><span class="strong">ObjectMidiListener</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/RawMidiListener.html" title="interface in themidibus"><span class="strong">RawMidiListener</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/SimpleMidiListener.html" title="interface in themidibus"><span class="strong">SimpleMidiListener</span></a></li>
<li type="circle">themidibus.<a href="../themidibus/StandardMidiListener.html" title="interface in themidibus"><span class="strong">StandardMidiListener</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../themidibus/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../index.html?themidibus/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

@ -0,0 +1,162 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* The ControlChange class represents a change in value from a controller.
*
* @version 008
* @author Severin Smith, Marc Koderer
* @see MidiBus
* @see ObjectMidiListener
* @see Note
*/
public class ControlChange {
public int channel;
public int number;
public int value;
public long timestamp;
public String bus_name;
/**
* Constructs a ControlChange object
*
* @param channel the channel of the ControlChange
* @param number the number of the ControlChange
* @param value the value of the ControlChange
*/
public ControlChange(int channel, int number, int value) {
this(channel, number, value, -1, null);
}
/**
* Constructs a ControlChange object
*
* @param channel the channel of the ControlChange
* @param number the number of the ControlChange
* @param value the value of the ControlChange
* @param timestamp the timestamp of the ControlChange
* @param bus_name the name of MidiBus associated with the ControlChange
*/
public ControlChange(int channel, int number, int value, long timestamp, String bus_name) {
this.channel = channel;
this.number = number;
this.value = value;
this.timestamp = timestamp;
this.bus_name = bus_name;
}
/**
* Set channel of the ControlChange
*
* @param channel the channel to set
*/
public void setChannel(int channel) {
this.channel = channel;
}
/**
* Return the channel of the ControlChange
*
* @return the channel
*/
public int channel() {
return channel;
}
/**
* Set number of the ControlChange
*
* @param number the number to set
*/
public void setNumber(int number) {
this.number = number;
}
/**
* Return the number of the ControlChange
*
* @return the number
*/
public int number() {
return number;
}
/**
* Set value of the ControlChange
*
* @param value the value to set
*/
public void setValue(int value) {
this.value = value;
}
/**
* Return the value of the ControlChange
*
* @return the value
*/
public int value() {
return value;
}
/**
* Returns a string in the format [c:channel, n:number, v:value, ts:timestamp, b:bus_name] e.g "[c:0, n:65, v:123, ts:1234, b:bus123]". If timestamp or bus_name isn't set, it is omitted.
*
* @return the string representation
*/
public String toString() {
String result = "[c:" + channel + ", v:" + number + ", n:" + value;
if(timestamp != -1) result += ", ts:" + timestamp;
if(bus_name != null) result += ", b:" + bus_name;
result += "]";
return result;
}
/**
* Check if all fields are equal.
*
* @return true if both objects can be considered to be equals
*/
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null) return false;
if(getClass() != obj.getClass()) return false;
ControlChange other = (ControlChange)obj;
if(other.channel != this.channel) return false;
if(other.number != this.number) return false;
if(other.value != this.value) return false;
if(other.timestamp != this.timestamp) return false;
if(other.bus_name != this.bus_name) return false;
return true;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,35 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* This is a placeholder interface which makes it easier to program and manipulate objects which implement subinterfaces of MidiListener like {@link RawMidiListener}, {@link SimpleMidiListener} or {@link StandardMidiListener}. It makes it easier to create lists and arrays of such object and allows for a standard method {@link MidiBus#addMidiListener(MidiListener listener)} to add any type of listener to a MidiBus object.
*
* @version 008
* @author Severin Smith
* @see RawMidiListener
* @see SimpleMidiListener
* @see StandardMidiListener
* @see ObjectMidiListener
* @see MidiBus
*/
public interface MidiListener {
}

@ -0,0 +1,254 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* The Note class represents a pressed or released key.
*
* @version 008
* @author Severin Smith, Marc Koderer
* @see MidiBus
* @see ObjectMidiListener
* @see ControlChange
*/
public class Note {
static String[] pitchMap = new String[] {
"C",
"C#",
"D",
"D#",
"E",
"F",
"F#",
"G",
"G#",
"A",
"A#",
"B"
};
public int channel;
public int pitch;
public int velocity;
public long ticks;
public long timestamp;
public String bus_name;
/**
* Constructs a Note object
*
* @param channel the channel of the Note
* @param pitch the pitch of the Note
* @param velocity the velocity of the Note
*/
public Note(int channel, int pitch, int velocity) {
this(channel, pitch, velocity, 0, -1, null);
}
/**
* Constructs a Note object
*
* @param channel the channel of the Note
* @param pitch the pitch of the Note
* @param velocity the velocity of the Note
* @param ticks the length in ticks of the Note
*/
public Note(int channel, int pitch, int velocity, int ticks) {
this(channel, pitch, velocity, ticks, -1, null);
}
/**
* Constructs a Note object
*
* @param channel the channel of the Note
* @param pitch the pitch of the Note
* @param velocity the velocity of the Note
* @param timestamp the timestamp of the Note
* @param bus_name the name of MidiBus associated with the Note
*/
public Note(int channel, int pitch, int velocity, long timestamp, String bus_name) {
this(channel, pitch, velocity, 0, timestamp, bus_name);
}
/**
* Constructs a Note object
*
* @param channel the channel of the Note
* @param pitch the pitch of the Note
* @param velocity the velocity of the Note
* @param ticks the length in ticks of the Note
* @param timestamp the timestamp of the Note
* @param bus_name the name of MidiBus associated with the Note
*/
public Note(int channel, int pitch, int velocity, int ticks, long timestamp, String bus_name) {
this.channel = channel;
this.pitch = pitch;
this.velocity = velocity;
this.ticks = ticks;
this.timestamp = timestamp;
this.bus_name = bus_name;
}
/**
* Set channel of the Note
*
* @param channel the channel to set
*/
public void setChannel(int channel) {
this.channel = channel;
}
/**
* Return the channel of the Note
*
* @return the channel
*/
public int channel() {
return channel;
}
/**
* Set pitch of the Note
*
* @param pitch the pitch to set
*/
public void setPitch(int pitch) {
this.pitch = pitch;
}
/**
* Return the pitch of the Note
*
* @return the pitch
*/
public int pitch() {
return pitch;
}
/**
* Return the pitch of the Note relative to C. Range is 0-12.
*
* @return the relative pitch
*/
public int relativePitch() {
return pitch;
}
/**
* Return the octave of the Note. Octaves are divided by the note C
*
* @return the octave
*/
public int octave() {
return pitch/12;
}
/**
* Return the name of the note, e.g. "C" or "G#".
*
* @return the note name
*/
public String name() {
return pitchMap[pitch%12];
}
/**
* Set velocity of the Note
*
* @param velocity the velocity to set
*/
public void setVelocity(int velocity) {
this.velocity = velocity;
}
/**
* Return the velocity of the Note
*
* @return the velocity
*/
public int velocity() {
return velocity;
}
/**
* Set length in ticks of the Note
*
* @param ticks the ticks value to set
*/
public void setTicks(int ticks) {
this.ticks = ticks;
}
/**
* Return the length in ticks of the Note
*
* @return the ticks length
*/
public long ticks() {
return ticks;
}
/**
* Returns a string in the format [Note Name, c:channel, p:pitch, v:velocity, t:ticks, ts:timestamp, b:bus_name] e.g "[C, c:0, p:65, v:123, t:0, ts:1234, b:bus123]". If ticks, timestamp or bus_name isn't set, it is omitted.
*
* @return the string representation
*/
public String toString() {
String result = "[" + name() + ", c:" + channel + ", p:" + pitch + ", v:" + velocity;
if(ticks != 0) result += ", t:" + ticks;
if(timestamp != -1) result += ", ts:" + timestamp;
if(bus_name != null) result += ", b:" + bus_name;
result += "]";
return result;
}
/**
* Check if all fields are equal.
*
* @return true if both objects can be considered to be equals
*/
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null) return false;
if(getClass() != obj.getClass()) return false;
Note other = (Note)obj;
if(other.channel != this.channel) return false;
if(other.pitch != this.pitch) return false;
if(other.velocity != this.velocity) return false;
if(other.ticks != this.ticks) return false;
if(other.timestamp != this.timestamp) return false;
if(other.bus_name != this.bus_name) return false;
return true;
}
}

@ -0,0 +1,59 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* A ObjectMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange events via {@link Note} and {@link ControlChange} objects, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming messages in some useful way.
*
* @version 008
* @author Severin Smith, Marc Koderer
* @see MidiListener
* @see RawMidiListener
* @see SimpleMidiListener
* @see StandardMidiListener
* @see Note
* @see ControlChange
* @see MidiBus
*/
public interface ObjectMidiListener extends MidiListener {
/**
* Objects notifying this ObjectMidiListener of a new NoteOn events call this method.
*
* @param note the note object associated with this event
*/
public void noteOn(Note note);
/**
* Objects notifying this ObjectMidiListener of a new NoteOff events call this method.
*
* @param note the note object associated with this event
*/
public void noteOff(Note note);
/**
* Objects notifying this ObjectMidiListener of a new ControllerChange events call this method.
*
* @param change the ControlChange object associated with this event
*/
public void controllerChange(ControlChange change);
}

@ -0,0 +1,192 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
import javax.sound.midi.MidiMessage;
/**
* PApplet is your processing application or sketch. In it you can implement the following methods which will be called whenerever a MidiBus object attached to the PApplet, recieves a new incomming MIDI message of the appropriate type.
* <p>
* <i><b style="color:red;">Note:</b> This page is a dummy page for documentation of the MidiBus' extention of the regular PApplet's functionality, for the full documentation of PApplet please visits the <a target="_blank" href="http://dev.processing.org/reference/core/javadoc/processing/core/PApplet.html">Processing javadocs</a></i>
*
* @version 008
* @author Severin Smith
* @see MidiBus
* @see MidiListener
* @see RawMidiListener
* @see StandardMidiListener
* @see SimpleMidiListener
*/
public class PApplet{
/**
* Is passed the channel, controller number and contoller value associated with every new ContollerChange MIDI message recieved by a MidiBus attached to this applet.
*
* @param channel the channel on which the ContollerChange arrived
* @param number the controller number associated with the ContollerChange
* @param value the controller value associated with the ContollerChange
* @see #controllerChange(int channel, int pitch, int velocity, long timestamp, String bus_name)
*/
public void controllerChange(int channel, int number, int value) {
}
/**
* Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.
*
* @param channel the channel on which the ContollerChange arrived
* @param number the controller number associated with the ContollerChange
* @param value the controller value associated with the ContollerChange
* @param timestamp the timestamp on the midi message
* @param bus_name the name of MidiBus which recieved the ContollerChange
* @see #controllerChange(int channel, int pitch, int velocity)
*/
public void controllerChange(int channel, int number, int value, long timestamp, String bus_name) {
}
/**
* Is passed a ControlChange object representing controlChange event
*
* @param change the ControlChange object
* @see #controllerChange(int channel, int pitch, int velocity)
* @see themidibus.ObjectMidiListener#controllerChange(ControlChange)
*/
public void controllerChange(ControlChange change) {
}
/**
* Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet.
*
* @param message the MidiMessage recieved
* @see #midiMessage(MidiMessage message, long timestamp, String bus_name)
*/
public void midiMessage(MidiMessage message) {
}
/**
* Is passed the raw MidiMessage associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.
*
* @param message the MidiMessage recieved
* @param timestamp the timestamp on the midi message
* @param bus_name the name of MidiBus which recieved the MIDI message
* @see #midiMessage(MidiMessage message)
*/
public void midiMessage(MidiMessage message, long timestamp, String bus_name) {
}
/**
* Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet.
*
* @param channel the channel on which the NoteOff arrived
* @param pitch the pitch associated with the NoteOff
* @param velocity the velocity associated with the NoteOff
* @see #noteOff(int channel, int pitch, int velocity, long timestamp, String bus_name)
*/
public void noteOff(int channel, int pitch, int velocity) {
}
/**
* Is passed the channel, pitch and velocity associated with every new NoteOff MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.
*
* @param channel the channel on which the NoteOff arrived
* @param pitch the pitch associated with the NoteOff
* @param velocity the velocity associated with the NoteOff
* @param timestamp the timestamp on the midi message
* @param bus_name the name of MidiBus which recieved the NoteOff
* @see #noteOff(int channel, int pitch, int velocity)
*/
public void noteOff(int channel, int pitch, int velocity, long timestamp, String bus_name) {
}
/**
* Is passed a Note object representing noteOff event
*
* @param note the Note object
* @see #noteOff(int channel, int pitch, int velocity)
* @see themidibus.ObjectMidiListener#noteOn(Note)
*/
public void noteOff(Note note) {
}
/**
* Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet.
*
* @param channel the channel on which the NoteOn arrived
* @param pitch the pitch associated with the NoteOn
* @param velocity the velocity associated with the NoteOn
* @see #noteOn(int channel, int pitch, int velocity, long timestamp, String bus_name)
*/
public void noteOn(int channel, int pitch, int velocity) {
}
/**
* Is passed the channel, pitch and velocity associated with every new NoteOn MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.
*
* @param channel the channel on which the NoteOn arrived
* @param pitch the pitch associated with the NoteOn
* @param velocity the velocity associated with the NoteOn
* @param timestamp the timestamp on the midi message
* @param bus_name the name of MidiBus which recieved the NoteOn
* @see #noteOn(int channel, int pitch, int velocity)
*/
public void noteOn(int channel, int pitch, int velocity, long timestamp, String bus_name) {
}
/**
* Is passed a Note object representing noteOn event
*
* @param note the Note object
* @see #noteOn(int channel, int pitch, int velocity)
* @see themidibus.ObjectMidiListener#noteOff(Note)
*/
public void noteOn(Note note) {
}
/**
* Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet.
*
* @param data the raw data associated with the MIDI message
* @see #rawMidi(byte[] data, long timestamp, String bus_name)
*/
public void rawMidi(byte[] data) {
}
/**
* Is passed the raw data associated with every new MIDI message recieved by a MidiBus attached to this applet and the name of the MidiBus which recieved the message.
*
* @param data the raw data associated with the MIDI message
* @param timestamp the timestamp on the midi message
* @param bus_name the name of MidiBus which recieved the MIDI message
* @see #rawMidi(byte[] data)
*/
public void rawMidi(byte[] data, long timestamp, String bus_name) {
}
}

@ -0,0 +1,40 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* A RawMidiListener can be notified of incomming MIDI messages in raw form, usually by a MidiBus object which it is connect to. Typically it would analyse and react to incomming MIDI messages in some useful way.
*
* @version 008
* @author Severin Smith
* @see MidiListener
* @see SimpleMidiListener
* @see StandardMidiListener
* @see ObjectMidiListener
* @see MidiBus
*/
public interface RawMidiListener extends MidiListener {
/**
* Objects notifying this RawMidiListener of a new MIDI message call this method and pass the raw message to it.
*
* @param data the data bytes that make up the MIDI message
*/
public void rawMidiMessage(byte[] data);
}

@ -0,0 +1,63 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
/**
* A SimpleMidiListener can be notified of incomming NoteOn, NoteOff and ControllerChange MIDI messages, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming MIDI messages in some useful way.
*
* @version 008
* @author Severin Smith
* @see MidiListener
* @see RawMidiListener
* @see StandardMidiListener
* @see ObjectMidiListener
* @see MidiBus
*/
public interface SimpleMidiListener extends MidiListener {
/**
* Objects notifying this SimpleMidiListener of a new NoteOn MIDI message call this method.
*
* @param channel the channel on which the NoteOn arrived
* @param pitch the pitch associated with the NoteOn
* @param velocity the velocity associated with the NoteOn
*/
public void noteOn(int channel, int pitch, int velocity);
/**
* Objects notifying this SimpleMidiListener of a new NoteOff MIDI message call this method.
*
* @param channel the channel on which the NoteOff arrived
* @param pitch the pitch associated with the NoteOff
* @param velocity the velocity associated with the NoteOff
*/
public void noteOff(int channel, int pitch, int velocity);
/**
* Objects notifying this SimpleMidiListener of a new ControllerChange MIDI message call this method.
*
* @param channel the channel on which the ContollerChange arrived
* @param number the controller number associated with the ContollerChange
* @param value the controller value associated with the ContollerChange
*/
public void controllerChange(int channel, int number, int value);
}

@ -0,0 +1,43 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
package themidibus;
import javax.sound.midi.MidiMessage;
/**
* A StandardMidiListener can be notified of incomming MIDI messages in MidiMessage form, usually by a MidiBus object which it is connected to. Typically it would analyse and react to incomming MIDI messages in some useful way.
*
* @version 008
* @author Severin Smith
* @see MidiListener
* @see RawMidiListener
* @see SimpleMidiListener
* @see ObjectMidiListener
* @see MidiBus
* @see javax.sound.midi.MidiMessage
*/
public interface StandardMidiListener extends MidiListener {
/**
* Objects notifying this StandardMidiListener of a new MIDI message call this method and pass the MidiMessage
*
* @param message the MidiMessage received
*/
public void midiMessage(MidiMessage message, long timeStamp);
}

@ -0,0 +1,42 @@
/**
* Copyright (c) 2009 Severin Smith
*
* This file is part of a library called The MidiBus (themidibus) - http://www.smallbutdigital.com/themidibus.php.
*
* The MidiBus is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MidiBus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the MidiBus. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* The MidiBus provides a simple way to access and interact with installed MIDI system resources, although it's especially designed to be used with <a target="_blank" href="http://www.processing.org">Processing</a>, it could easily be adapted for use in any java program.
* <p>
* <b style="color:red;">IMPORTANT</b>: Mac users may want to install <a href="http://www.humatic.de/htools/mmj.htm">mmj, <i>a Mac OS X universal binary java MIDI subsystem</i></a> - or an equivalent third party MIDI subsystem - because the apple implementation is lacking support for a number of advanced MIDI features. Mmj is recommended because it works, it's free and it's almost open source (CC licence). Please check README.md for more information. If you do use MMJ you will want to set {@link themidibus.MidiBus#sendTimestamps(boolean sendTimestamps)} to false, otherwise messages won't be sent.
* <p>
* Keeping with the spirit of Processing's easy to use sketching/prototyping style, the MidiBus offers a clean and simple way to get at MIDI ressources. Getting the basic functionality of the MidiBus up and running in a sketch is a matter of only a few line. The {@link themidibus.MidiBus} class provides everything needed send and receive MIDI inside a sketch. To jump right into the Midibus, either refer to the paragraph titled "Typical Implementation, Simple" in the description for the {@link themidibus.MidiBus} class, or check out the code examples distributed with this library.
* <hr><p>
* It is important to understand that the MidiBus offers little functionality that isn't available from Java's native <a target="_blank" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi</a> package. Anyone interested in working with MIDI in Java should take the time to read the documentation for the <a target="_blank" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi</a>. It offers a more full featured and flexible alternative to this package, although it does do so at the cost of added complexity. In addition, it may be worthwhile to skim <a href="http://java.sun.com/docs/books/tutorial/sound/index.html">the "official" Java Tutorial</a> for the javax.sound.* packages.
* <hr>
* <h2>Related Documentation</h2>
* <ul>
* <li><a href="http://www.smallbutdigital.com/themidibus.php">The MidiBus website: examples, updates, documentation, etc</a></li>
* <li><a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/package-summary.html">javax.sound.midi Package</a></li>
* <li><a href="http://java.sun.com/docs/books/tutorial/sound/index.html">Java Sound Tutorials</a></li>
* <li><a href="http://www.srm.com/qtma/davidsmidispec.html">MIDI Specification Reference</a></li>
* <li><a href="http://www.indiana.edu/~emusic/cntrlnumb.html">Standard Controller Numbers</a></li>
* </ul>
*
* @version 008
* @author Severin Smith
*/
package themidibus;
Loading…
Cancel
Save