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 >
Text File  |  1992-02-21  |  12KB  |  254 lines

  1.     M    I    D    I    S    T    U    F    F
  2.     ~    ~    ~    ~    ~    ~    ~    ~    ~
  3.  
  4.     1st PreRelease for Rel 2 - - MIDIstuff - - - Feb 10, 1992
  5.  
  6.       Introducing: This package contains 8 little tools that use the
  7.       MIDI.library so that they can use MIDI at the same time and can
  8.                    easily be combined in a modular way.
  9.  
  10. Requirements:
  11. ~~~~~~~~~~~~
  12.  Bill Barton's Midi.Library version 2. ARP Library.
  13.  Works on an ancient A500 with Kickstart 1.2, not tested on any newer.
  14.  
  15. MIDI Ports    V1.2    MIDI Ports Monitor
  16. ~~~~~~~~~~
  17.  This little tool will always keep you up to date upon public MIDI ports
  18.  attached to the MIDI.Library. Actually it was meant to become a patchbay
  19.  the way Bill suggested it, but I found no way of getting a list of all
  20.  existing routes between the ports (Bill: hint! hint!), so all I can do
  21.  is display the names of the ports. At least this is done with elegance:
  22.  Ports opens up a window and writes the list of 'sources' to the left
  23.  and the 'dests' to the right. Nice thing about it is, it automatically
  24.  resizes the window to the necessary amount of lines to display everything.
  25.  
  26. SYNTAX: Ports
  27.  
  28. MIDI Keys    V2.0    Virtual MIDI Keyboard
  29. ~~~~~~~~~
  30.  Shows a 10-octave (full MIDI note range) keyboard in a window, displays
  31.  all incoming MIDI notes ('OMNI mode') by highlighting the keys with colours
  32.  changing by velocity. When the window is activated a piano keyboard is
  33.  simulated on the Amiga keyboard. You can also play notes with the mouse
  34.  button. A 'thru' route can be established by hitting the F10 key, it will
  35.  connect the Input and Output ports with each other. F2/F1 will in/decrement
  36.  the current channel the keyboard sends on.
  37.  
  38. SYNTAX: Keys [-i <Input>] [-o <Output>] [-t] [-f] [-c <Channel>]
  39.         [-y <Position>] [<Name>]
  40.  
  41.  With the <i> and <o> options MIDI input & output streams can be redirected.
  42.  The <t> activates the 'thru' route. <f> stands for 'followmouse', changes
  43.  the way the mouse is scanned. You can set the MIDI channel with <c> and
  44.  position the keyboard window at a certain height on the screen with <y>.
  45.  The <Name> is to override the default port name "Keyboard".
  46.  
  47. MIDI Recorder    V1.2    Little MIDI Recorder
  48. ~~~~~~~~~~~~~
  49.  Records or plays back note data from the musical instrument digital
  50.  interface (MIDI) using MIDI realtime information as timing clock.
  51.  Sequential music data can be stored and retrieved from DOS.
  52.  
  53. SYNTAX: Recorder [-i <Input>] [-o <Output>] [-t] [-b <BufferSize>]
  54.      [-r <RecordingBufferSize>] [<Name>]
  55.  
  56.  Redirection as always. The <b> changes the size of the "MAIN" track, the
  57.  buffer of permanent data, and the <r> changes the size of the "AUX"
  58.  track, which is a buffer used for incoming data only.
  59.  
  60.  The Recorder has no "PLAY" or "STOP" keys, it expects START and STOP
  61.  events to come from MIDI along with the timing information. The "RECORD"
  62.  gadget toggles recording and playback. When pressed it automatically
  63.  'rewinds' the tracks, so that recording or playback can be restarted
  64.  without needing to stop the clock, unless you have other sequencing
  65.  equipment or a drum machine attached. When activating the "RECORD" gadget
  66.  the recording buffer ("AUX" track) is automatically deleted. When you
  67.  have recorded something you like, you can copy it to the permanent buffer
  68.  ("MAIN" track) with the "MEMORIZE" gadget. With this technique you can
  69.  incrementally record on top of previous things, but you can't edit them
  70.  in any way. Playback mode automatically merges the data on both tracks,
  71.  so you have the chance to listen to what you played before copying it.
  72.  
  73.  Further functions can be obtains by picking menu items or pressing the
  74.  equivalent keys. The functions and keys are:
  75.  
  76.     Load    (right-amiga-"l")    Choose a file to load.
  77.     Save As    (right-amiga-"s")    Choose a filename to save music to.
  78.     Re-Read    (right-amiga-"r")    Load that file again.
  79.     Write    (right-amiga-"w")    Save it again.
  80.     Kill    (right-amiga-"k")    Erase the "MAIN" track!
  81.  
  82.     Status    (right-amiga-".")    Shows current status of tracks.
  83.     Thru    (right-amiga-"`")    Toggle the thru function.
  84.  
  85.  File operations apply only to the "MAIN" track, so only "memorized"
  86.  notes are actually stored! Should you happen to have a too small main
  87.  buffer, so that the Recorder refuses to copy your brilliant solo, you'll
  88.  have to save the main track, then kill it, copy and save the solo.
  89.  That is: KILL only affects the MAIN track, not the AUX (recording).
  90.  Make use of the STATUS function to keep an eye on what is happening.
  91.  The default sizes of the buffers are 40000 (MAIN) and 15000 (AUX).
  92.  Note that each MIDI event requires 4 bytes, so you must divide the
  93.  sizes by 4 to get the number of available event spaces. In the previous
  94.  version of this program, 6 bytes were used. Because of this the two
  95.  are NOT file compatible! Changes in speed are not stored.
  96.  
  97. MIDI Clock Daemon    V1.1    MIDI Clock Generator
  98. ~~~~~~~~~~~~~~~~~
  99.  The clock daemon is used to produce standard MIDI timing signals.
  100.  This program has no user interface by itself, it needs a controller to
  101.  be used. As the word 'daemon' suggests, you must run it in the back-
  102.  ground with runback, as it doesn't detach itself, and then it will wait
  103.  for orders from its MIDI ports. It runs quite stable now and only
  104.  seldom looses the beat or something like that. You must of course
  105.  maintain the multitasking environment. To stop it you can use CTRL C,
  106.  the BREAK command from a shell, or feed it with an unexpected MIDI code.
  107.  
  108. SYNTAX: [run] ClockD [-o <Output>] [<Name>]
  109.  
  110.  The ClockD is called by the timer.device 96 times per quarter note, it
  111.  then outputs a clock event to its MIDI port, which can be redirected
  112.  into the recorder or anywhere else. The speed in beat per minute can
  113.  be set with a certain MIDI controller code, as 'Control' does anyway.
  114.  ClockD is still very sensitive about interruptions while it is running,
  115.  avoid feeding it with too many commands as it might lock up the machine.
  116.  
  117. MIDI Control    V1.0    MIDI Clock Daemon Controller
  118. ~~~~~~~~~~~~
  119.  Finally you get the tool with the classic "START", "STOP" and "CONTINUE"
  120.  gadgets. When you start it up, it will look for a running ClockD and
  121.  connect itself to it so that you can use the gadgets. The tempo gadget
  122.  works as you would expect and correctly displays the beats per minute.
  123.  However be careful not to hassle too much with it while the clock is
  124.  running as bad things can happen. Best is to change the speed only
  125.  while stopped. Maybe if you have a faster Amiga than mine, this problem
  126.  will not arise for you.
  127.  
  128. SYNTAX: Control [-o <Output>] [<Name>]
  129.  
  130.  When the controller exits (by window-close or break) it will send a
  131.  code to the attached Clock daemon to also exit.
  132.  
  133. MIDI Echo    V1.0    MIDI Echo Processor
  134. ~~~~~~~~~
  135.  This filter produces copies of incoming notes at exponentially
  136.  decrementing velocity at the beat of the music. It expects both notes
  137.  and MIDI timing information to come into its listening port and will
  138.  count the MIDI timing to produce the echoes, therefore being always
  139.  in time with the rest of the music and following changes in speed of the
  140.  MIDI clock if you set it up to do so.
  141.  
  142. SYNTAX: Echo [-i <Input>] [-o <Output>] [-t] [-c <Channel>]
  143.     [-b <BufferSize>] [<Name>]
  144.  
  145.  Redirection as always. Specify on what channel Echo acts with <c>, this
  146.  is the only way to change the default of 1. Change <b> in case you
  147.  encounter a 'Buffer exceeded' message, the default is 400 events. This
  148.  time the size is in events, not bytes (sorry). Each event takes 5 bytes.
  149.  
  150.  The gadgets:
  151.  Delay is the number of MIDI ticks to wait before sending out an echo.
  152.  To stay in the rhythm of the music you must use 'MIDI-even' numbers
  153.  like 12, 24, 36, 48, 96. The default is 24. Decay is how much a note
  154.  looses in volume (velocity actually) each time. R stands for repetitions
  155.  and is used to limit the number of echoes, this is by default set to
  156.  'endless'. Mute suspends the operation of the program. Thru toggles
  157.  the additional 'thru' route.
  158.  
  159.  Note that MIDI echoes never really sound natural, but people like
  160.  Kraftwerk have sometimes used them instead of real echo processors
  161.  because of the different feel of it. Consider also the weak points
  162.  of MIDI technology, as it not always knows which voice to use upon
  163.  receipt of NoteOn/Off for the same note, and much more, consider the
  164.  velocity scaling of your synthesizer, as you might have to make
  165.  changes to the sound program so that the velocity is correctly
  166.  converted to output volume, not modified.
  167.  
  168. MIDI Holder    V1.1    Hold - A MIDI effect filter
  169. ~~~~~~~~~~~
  170.  This one is more simple, it just holds back the release of notes
  171.  as long as possible. However the effect is interesting.
  172.  
  173. SYNTAX: Holder [-i <Input>] [-o <Output>] [-t] [-c <Channel>]
  174.     [-v <Voices>] [<Name>]
  175.  
  176.  Again the only way to make it work on a channel other than 1 is to
  177.  specify <c>. With <v> you can set a limit of how many voices your
  178.  synth is able to handle on that channel, so Echo will always release
  179.  a note in time to make space for another one to avoid ugly cutoffs.
  180.  The default is 8. Use <Name> if you don't like the name "Holder".
  181.  
  182.  This filter acts upon NoteOn and Off messages only, disregarding
  183.  timing and everything else. With the "RELEASE" gadget you can
  184.  release all notes being held at once. With "THRU" the usual thru
  185.  route is enabled.
  186.  
  187. MIDI Dump    V1.1    Simple MIDI SysX Dumper
  188. ~~~~~~~~~
  189.  Receives & Sends MIDI "System Exclusive" data, (sysx, patch data for
  190.  synthesizers etc.). Data can be stored and retrieved from DOS.
  191.  
  192. SYNTAX: Dump [-i <Input>] [-o <Output>] [-b <BufferSize>] [-a] [<Name>]
  193.  
  194.  <i> and <o> as always, useful in case you want to use "midi_in" as Input.
  195.  With <b> you can change the size of the buffer in bytes, the default
  196.  is 30000. <a> stands for append mode. Default port name "Dump" can be
  197.  changed by giving an argument, as always.
  198.  
  199.  It opens a text window and displays the list of commands. The commands
  200.  are self-explicatory. About the append mode: When Dump is not in append
  201.  mode it will automatically delete the buffer upon receipt of new SysX data.
  202.  Some synthesizers though have the bad habit of saving their data with
  203.  several SysX dumps instead of a big one. In normal mode Dump would just
  204.  memorize the last one, with append mode they get appended to the buffer
  205.  instead; then you can save them all into one file, or use the split-save
  206.  function, which produces single files for each dump, but is not very
  207.  elegant. It activates with CTRL-S, use only when necessary.
  208.  
  209. General usage notes (for all programs in the package):
  210. ~~~~~~~~~~~~~~~~~~~
  211. - The screen title is often used for messages.
  212. - The programs use a certain <Name> in the MIDI library port lists, if this
  213.   name is already taken they will automatically append a number to the
  214.   name. You can override this by specifying the name you want as argument.
  215. - All utilities are now interruptable by CTRL-C or break command from CLI.
  216. - Automatic routes can be modified with the '-i' and '-o' switches.
  217. - Some utilities have 'thru' routes that can be activated with '-t'.
  218. - If a program fails to start try to run it in foreground, error messages
  219.   are displayed to stdout sometimes.
  220. - None of the executables can be made resident.
  221.  
  222. About the demo song
  223. ~~~~~
  224.  I wanted to include something small so here's the smallest thing
  225.  I had in my archives. I think I wrote it at 130 bpm or something
  226.  like that, but it sounds best at about 170.  :-)
  227.  
  228. COPYRIGHT NOTICE
  229.  The binaries package is placed into public domain, this also includes the
  230.  music files. Spread this data in whatever way you want, but leave my name
  231.  in it, please. The package is provided "as is". I don't guarantee the
  232.  functionality of any data provided with this package.
  233.  
  234.  Source-code can also be obtained by contacting me at my electronic
  235.  mail address. I can send it to you then, though it's not in public domain.
  236.  But I will only do so by email. I won't answer to anyone by snail mail.
  237.  
  238. CONCLUDING...
  239.  Hope this helps all of you MIDIaners even better than the release before!
  240.  
  241. Postcards to:
  242.  
  243.     Carl "LynX" v. Loesch
  244.          Milchstr. 32
  245.     D - 2900 Oldenburg
  246.              ~~~~~~~~~   Germany
  247.  
  248. Bug reports, suggestions, sourcecode requests, questions, contacts,
  249. contracts, cooperation, fan mail, virtual chocolate or job offers to:
  250.  
  251. INTERNET:    Carl.von.Loesch@Informatik.Uni-Oldenburg.de
  252.     or:    lynx@dm.unirm1.it
  253. BITNET:        244661 at DOLUNI1
  254.