home *** CD-ROM | disk | FTP | other *** search
- 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
-