home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
sound
/
midistuf.lha
/
MIDIstuff.doc
< prev
next >
Wrap
Text File
|
1992-02-21
|
12KB
|
254 lines
M I D I S T U F F
~ ~ ~ ~ ~ ~ ~ ~ ~
1st PreRelease for Rel 2 - - MIDIstuff - - - Feb 10, 1992
Introducing: This package contains 8 little tools that use the
MIDI.library so that they can use MIDI at the same time and can
easily be combined in a modular way.
Requirements:
~~~~~~~~~~~~
Bill Barton's Midi.Library version 2. ARP Library.
Works on an ancient A500 with Kickstart 1.2, not tested on any newer.
MIDI Ports V1.2 MIDI Ports Monitor
~~~~~~~~~~
This little tool will always keep you up to date upon public MIDI ports
attached to the MIDI.Library. Actually it was meant to become a patchbay
the way Bill suggested it, but I found no way of getting a list of all
existing routes between the ports (Bill: hint! hint!), so all I can do
is display the names of the ports. At least this is done with elegance:
Ports opens up a window and writes the list of 'sources' to the left
and the 'dests' to the right. Nice thing about it is, it automatically
resizes the window to the necessary amount of lines to display everything.
SYNTAX: Ports
MIDI Keys V2.0 Virtual MIDI Keyboard
~~~~~~~~~
Shows a 10-octave (full MIDI note range) keyboard in a window, displays
all incoming MIDI notes ('OMNI mode') by highlighting the keys with colours
changing by velocity. When the window is activated a piano keyboard is
simulated on the Amiga keyboard. You can also play notes with the mouse
button. A 'thru' route can be established by hitting the F10 key, it will
connect the Input and Output ports with each other. F2/F1 will in/decrement
the current channel the keyboard sends on.
SYNTAX: Keys [-i <Input>] [-o <Output>] [-t] [-f] [-c <Channel>]
[-y <Position>] [<Name>]
With the <i> and <o> options MIDI input & output streams can be redirected.
The <t> activates the 'thru' route. <f> stands for 'followmouse', changes
the way the mouse is scanned. You can set the MIDI channel with <c> and
position the keyboard window at a certain height on the screen with <y>.
The <Name> is to override the default port name "Keyboard".
MIDI Recorder V1.2 Little MIDI Recorder
~~~~~~~~~~~~~
Records or plays back note data from the musical instrument digital
interface (MIDI) using MIDI realtime information as timing clock.
Sequential music data can be stored and retrieved from DOS.
SYNTAX: Recorder [-i <Input>] [-o <Output>] [-t] [-b <BufferSize>]
[-r <RecordingBufferSize>] [<Name>]
Redirection as always. The <b> changes the size of the "MAIN" track, the
buffer of permanent data, and the <r> changes the size of the "AUX"
track, which is a buffer used for incoming data only.
The Recorder has no "PLAY" or "STOP" keys, it expects START and STOP
events to come from MIDI along with the timing information. The "RECORD"
gadget toggles recording and playback. When pressed it automatically
'rewinds' the tracks, so that recording or playback can be restarted
without needing to stop the clock, unless you have other sequencing
equipment or a drum machine attached. When activating the "RECORD" gadget
the recording buffer ("AUX" track) is automatically deleted. When you
have recorded something you like, you can copy it to the permanent buffer
("MAIN" track) with the "MEMORIZE" gadget. With this technique you can
incrementally record on top of previous things, but you can't edit them
in any way. Playback mode automatically merges the data on both tracks,
so you have the chance to listen to what you played before copying it.
Further functions can be obtains by picking menu items or pressing the
equivalent keys. The functions and keys are:
Load (right-amiga-"l") Choose a file to load.
Save As (right-amiga-"s") Choose a filename to save music to.
Re-Read (right-amiga-"r") Load that file again.
Write (right-amiga-"w") Save it again.
Kill (right-amiga-"k") Erase the "MAIN" track!
Status (right-amiga-".") Shows current status of tracks.
Thru (right-amiga-"`") Toggle the thru function.
File operations apply only to the "MAIN" track, so only "memorized"
notes are actually stored! Should you happen to have a too small main
buffer, so that the Recorder refuses to copy your brilliant solo, you'll
have to save the main track, then kill it, copy and save the solo.
That is: KILL only affects the MAIN track, not the AUX (recording).
Make use of the STATUS function to keep an eye on what is happening.
The default sizes of the buffers are 40000 (MAIN) and 15000 (AUX).
Note that each MIDI event requires 4 bytes, so you must divide the
sizes by 4 to get the number of available event spaces. In the previous
version of this program, 6 bytes were used. Because of this the two
are NOT file compatible! Changes in speed are not stored.
MIDI Clock Daemon V1.1 MIDI Clock Generator
~~~~~~~~~~~~~~~~~
The clock daemon is used to produce standard MIDI timing signals.
This program has no user interface by itself, it needs a controller to
be used. As the word 'daemon' suggests, you must run it in the back-
ground with runback, as it doesn't detach itself, and then it will wait
for orders from its MIDI ports. It runs quite stable now and only
seldom looses the beat or something like that. You must of course
maintain the multitasking environment. To stop it you can use CTRL C,
the BREAK command from a shell, or feed it with an unexpected MIDI code.
SYNTAX: [run] ClockD [-o <Output>] [<Name>]
The ClockD is called by the timer.device 96 times per quarter note, it
then outputs a clock event to its MIDI port, which can be redirected
into the recorder or anywhere else. The speed in beat per minute can
be set with a certain MIDI controller code, as 'Control' does anyway.
ClockD is still very sensitive about interruptions while it is running,
avoid feeding it with too many commands as it might lock up the machine.
MIDI Control V1.0 MIDI Clock Daemon Controller
~~~~~~~~~~~~
Finally you get the tool with the classic "START", "STOP" and "CONTINUE"
gadgets. When you start it up, it will look for a running ClockD and
connect itself to it so that you can use the gadgets. The tempo gadget
works as you would expect and correctly displays the beats per minute.
However be careful not to hassle too much with it while the clock is
running as bad things can happen. Best is to change the speed only
while stopped. Maybe if you have a faster Amiga than mine, this problem
will not arise for you.
SYNTAX: Control [-o <Output>] [<Name>]
When the controller exits (by window-close or break) it will send a
code to the attached Clock daemon to also exit.
MIDI Echo V1.0 MIDI Echo Processor
~~~~~~~~~
This filter produces copies of incoming notes at exponentially
decrementing velocity at the beat of the music. It expects both notes
and MIDI timing information to come into its listening port and will
count the MIDI timing to produce the echoes, therefore being always
in time with the rest of the music and following changes in speed of the
MIDI clock if you set it up to do so.
SYNTAX: Echo [-i <Input>] [-o <Output>] [-t] [-c <Channel>]
[-b <BufferSize>] [<Name>]
Redirection as always. Specify on what channel Echo acts with <c>, this
is the only way to change the default of 1. Change <b> in case you
encounter a 'Buffer exceeded' message, the default is 400 events. This
time the size is in events, not bytes (sorry). Each event takes 5 bytes.
The gadgets:
Delay is the number of MIDI ticks to wait before sending out an echo.
To stay in the rhythm of the music you must use 'MIDI-even' numbers
like 12, 24, 36, 48, 96. The default is 24. Decay is how much a note
looses in volume (velocity actually) each time. R stands for repetitions
and is used to limit the number of echoes, this is by default set to
'endless'. Mute suspends the operation of the program. Thru toggles
the additional 'thru' route.
Note that MIDI echoes never really sound natural, but people like
Kraftwerk have sometimes used them instead of real echo processors
because of the different feel of it. Consider also the weak points
of MIDI technology, as it not always knows which voice to use upon
receipt of NoteOn/Off for the same note, and much more, consider the
velocity scaling of your synthesizer, as you might have to make
changes to the sound program so that the velocity is correctly
converted to output volume, not modified.
MIDI Holder V1.1 Hold - A MIDI effect filter
~~~~~~~~~~~
This one is more simple, it just holds back the release of notes
as long as possible. However the effect is interesting.
SYNTAX: Holder [-i <Input>] [-o <Output>] [-t] [-c <Channel>]
[-v <Voices>] [<Name>]
Again the only way to make it work on a channel other than 1 is to
specify <c>. With <v> you can set a limit of how many voices your
synth is able to handle on that channel, so Echo will always release
a note in time to make space for another one to avoid ugly cutoffs.
The default is 8. Use <Name> if you don't like the name "Holder".
This filter acts upon NoteOn and Off messages only, disregarding
timing and everything else. With the "RELEASE" gadget you can
release all notes being held at once. With "THRU" the usual thru
route is enabled.
MIDI Dump V1.1 Simple MIDI SysX Dumper
~~~~~~~~~
Receives & Sends MIDI "System Exclusive" data, (sysx, patch data for
synthesizers etc.). Data can be stored and retrieved from DOS.
SYNTAX: Dump [-i <Input>] [-o <Output>] [-b <BufferSize>] [-a] [<Name>]
<i> and <o> as always, useful in case you want to use "midi_in" as Input.
With <b> you can change the size of the buffer in bytes, the default
is 30000. <a> stands for append mode. Default port name "Dump" can be
changed by giving an argument, as always.
It opens a text window and displays the list of commands. The commands
are self-explicatory. About the append mode: When Dump is not in append
mode it will automatically delete the buffer upon receipt of new SysX data.
Some synthesizers though have the bad habit of saving their data with
several SysX dumps instead of a big one. In normal mode Dump would just
memorize the last one, with append mode they get appended to the buffer
instead; then you can save them all into one file, or use the split-save
function, which produces single files for each dump, but is not very
elegant. It activates with CTRL-S, use only when necessary.
General usage notes (for all programs in the package):
~~~~~~~~~~~~~~~~~~~
- The screen title is often used for messages.
- The programs use a certain <Name> in the MIDI library port lists, if this
name is already taken they will automatically append a number to the
name. You can override this by specifying the name you want as argument.
- All utilities are now interruptable by CTRL-C or break command from CLI.
- Automatic routes can be modified with the '-i' and '-o' switches.
- Some utilities have 'thru' routes that can be activated with '-t'.
- If a program fails to start try to run it in foreground, error messages
are displayed to stdout sometimes.
- None of the executables can be made resident.
About the demo song
~~~~~
I wanted to include something small so here's the smallest thing
I had in my archives. I think I wrote it at 130 bpm or something
like that, but it sounds best at about 170. :-)
COPYRIGHT NOTICE
The binaries package is placed into public domain, this also includes the
music files. Spread this data in whatever way you want, but leave my name
in it, please. The package is provided "as is". I don't guarantee the
functionality of any data provided with this package.
Source-code can also be obtained by contacting me at my electronic
mail address. I can send it to you then, though it's not in public domain.
But I will only do so by email. I won't answer to anyone by snail mail.
CONCLUDING...
Hope this helps all of you MIDIaners even better than the release before!
Postcards to:
Carl "LynX" v. Loesch
Milchstr. 32
D - 2900 Oldenburg
~~~~~~~~~ Germany
Bug reports, suggestions, sourcecode requests, questions, contacts,
contracts, cooperation, fan mail, virtual chocolate or job offers to:
INTERNET: Carl.von.Loesch@Informatik.Uni-Oldenburg.de
or: lynx@dm.unirm1.it
BITNET: 244661 at DOLUNI1