💾 Archived View for blitter.com › OLGA › MUSIC › RESOURCES › DOS_TAB_UTILS › TABPLAY › README.TXT captured on 2022-06-12 at 08:16:23.

View Raw

More Information

-=-=-=-=-=-=-

   -----------------------------------------------------------------
   TPLAY v1.x released for comments, feedback etc
   -----------------------------------------------------
                 * all versions to be completely free/public domain.
                 * PC 80286 or better, with SB or compatible sound card.
                   or Serial MIDI card - currently com3.
                 * modified versions, or comments etc should be emailed
                   to the author.. and good tabs please..
                 * for non-commercial use -this code must not be re-sold.
                   apart from copying/distrubtion costs it *must* be free,
                   and *must* be distributed in it's original, (whole) form.
                 * use at your own risk, I take no liability for this code.
                 * no user support etc etc..
                 * Lindsay Offer, 29th October, 1995.
                 * email:
                   loffer@nodecg.ncc.telecomwa.oz.au

   TPLAY   v1.53�  things must have a version number mus'nt they?
   --------------------------------------------------------------
   NOTES
                 * compact .tab player, nowhere near perfect..
                 * I got sick of very cruddy printouts..
                   - and files full of hard to find and use tabs.
                 * tplay displays on the screen, or plays
                   in real time..so you can keep all your
                   tabs on the PC - (zipped and backed up
                   on floppies of course!).
                 * ideal for teachers and students..
                   - of guitar,
                        bass guitar,
                        and banjo..
                 * originally designed for classical guitar,
                   the additions for banjo and bass show
                   the potential to use this technique for
                   *almost* any stringed instrument, or even
                   harmonica tab. (ie Fiddle, mandolin,
                   balalaika, ukulele etc etc..)

   ---------------------------------------------------------
   LIMITATIONS
                 * if tabs have weird characters, weird
                   things happen, you have been warned,
                   (just search and replace unwanted bits).
                 * doesn't go above 9th fret, unless coaxed..
                 * some unusual tabs sound bad, i.e if they
                   are not rhythmically assymmetrical..(no
                   more big words for a while!! (laid out proper)).
                 * timings a bit rough, depending on the tab,
                   and when the system takes a breath   :-)
                 * this is not a *real* application yet.
                 * it needs more testing and rehashing.
                 * the code still contains garbage..
                 * it does show that the idea is feasible

   ---------------------------------------------------------
   TODO LIST and MODIFICATIONS
                 * support more instruments
                 * support footswitch in show mode.
                 * support for MPU and SB MIDI
                 * support for note length needed
                 * support automated accompaniment
                 * needs direct writes to video
                 * proper data handling, use track
                   approach for each string
                 * smart bar/beat counting
                 * proper interrupt driven timing (windows 95
                   only allows you to grab a pretend interrupt.
                   I haven't figured out how to get truly
                   stable timing on all O/Ss yet..
                 * midifile support possible
                 * port ot msc, gcc and Linux

   ---------------------------------------------------------
   THE ANATOMY OF A TAB FILE

   - using one of the supplied (with tplay) tabs, IMAGINE.TAB,
   as a sample. This was downloaded from OLGA, and only had the
   % signs added for top lyric line added. In PLAY mode, tplay
   only has room for one top line. In SHOW mode, tplay displays
   *all* %'d lines..

/* mail header section */

   tplay just ignores these lines, of course this is present only if
   you download or receive the tab via mail, it is customary to leave
   the headers intact to acknowledge the *tabber*. If you enter your own
   tabs from scratch, simply omit/ignore this section all together..

     �    Date: Sun, 20 Feb 94 09:49:50 GMT
     �    Message-Id: <9402200949.AA01973@etlxd42k>
     �    To: jamesb@nevada.edu
     �    Subject: TAB: Imagine - John Lennon
     �
     �    Posted by: marp@irix.bris.ac.uk (R. Porter)
     �    Date: Tue, 18 Jan 1994 12:27:59 GMT
     �
     �    Below is a guitar transcription of Imagine. I have tried to
     �    make it sound as true to the piano style as possible.

/* tablature section */

     *MUST* be flush with the left margin

�top lyric line. *MUST* have the % sign in the left margin.
����->%Twice:
      E------------------------------------|------   1st (high E) string
      B----------------------------0-------|------   2nd string
      G----0-------0-------0-------0-------|-2----   3rd string
      D----2-------2-------2---------------|-3----   4th string
      A--------3-------3-------3-------3---|-----3   5th string
      E----3-------3-------3-------3-------|-1----   6th string
����->     C       ^               Cmaj7     F
bottom             �
lyric line         �� each number indicates the fret to play,
                      with 0 indicating an open string
        ��Ŀ
     ��ĴE-�----------------------------------|------
     �  ����--------------------------0-------|------
     �   G----0-------0-------0-------0-------|-2----
     �   D----2-------2-------2---------------|-3----
     �   A--------3-------3-------3-------3---|-----3
     �   E----3-------3-------3-------3-------|-1----
     �
     �� tplay searches for these two characters in the left margin
        and then assumes if they are tab that next strings *will*
        be there, legal characters can be added by recompiling
        but should include:
                                                            123456
        E-  --  e-  E|  |-    ==>  guitar, assume 6 strings EADGBe
        D-  d-                ==>  banjo, assumes 5 strings gDGBD
        G-  g-                ==>  bass, assumes 4 strings  EADG

       Timing marks can be placed in blank tab to aid in
       inserting the frets numbers etc symmetrically. They
       will be displayed *only* if the % lyric flag is entered
    �� at the beginning of the line, in the left margin..
    ��->  1 e + a 2 e + a 3 e + a 4 e + a   1 e +    etc etc
        E---------------------------------|------
        B---------------------------------|------
        G---------------------------------|------
        D---------------------------------|------
        A-------------------------0---2---|-3----
        E-z-------------------3-----------|------
          ^
          ��-this z or Z indicates a rest, this is needed where
             silence is needed at the start of a bar.  zzzZZZZ.
             This will now play in correct time.

                     /* refer to the source code, get_tab function */
                     /* for more detail, and the actual code...    */
   N.B:
       the ASCII codes can be checked by looking at asc.exe, (included
       with tplay, BUT don't overlook the difference between the line draw
       � and the ASCII dash/minus -. These *are* different, and some tabs
       might have a bad combination of these and other characters, and
       *will* print and play badly. The only two choices are:
       1. fix it with search and replaces, or simply entering the
          proper codes and characters, checking the timing as well, or
       2. don't play it..

   ---------------------------------------------------------
   TABBING DOs and DONTs
                 * tabs are quite devoid of timing information,
                   so tplay assumes that the tab is laid out
                   symmetrically - each dash (-) has the same
                   time value. DO set out tabs like the examples.
                 * DO copy the blnk*.* supplied empty tabs to a new
                   empty file. DO use these templates, tabs can easily
                   be put together in a standard text editor.
                 * DONT expect all tabs to play first up. Most will
                   need some cleaning up. If you play tabs with
                   lots of illegal and unexpected ascii values,
                   be warned that tplay will object. SIMPLY DO
                   clean them up first..Notes above the ninth fret
                   are special cases. (See HISTORY, section 5. below)
                 * DONT put anything *immediately* after the first
                   e or E in the first line of tab. tplay will
                   ignore this line, it's part of the test for
                   a new section of tab!!
                 * DONT expect too much! tplay can *preview*
                   a tab, but it's not supposed to (yet, anyway)
                   play like a recording or a MIDI file.
                 * learn and listen using PLAY MODE, then use SHOW
                   MODE for screen display for proper solo playing.
                 * DO use an old keyboard, and turn the pages using
                   the space bar with the keyboard on the ground,
                   in SHOW mode - or install a small jack in the end
                   of the keyboard across any key, and use a standard
                   footswitch. Classical players can install a footswitch
                   in their foot stool. (only joking! - I'll try to add
                   a footswitch using the joystick port as soon as I can).
                 * DO use batch files. They make things a lot easier.
                 * DO copy the example batch files, edit them and put
                   in new tab file name and an appropriate timing value.
                 * DO check out the tablature newsgroups. This is a good
                   source of info, and tabs, and help on the curly ones.
                 * DO, DO, DO post all your *good* tabs
                 * DO NOT post transcription straight out of a book
                   or magazine as your own work, (you can end up in trouble
                   for copyright breaches). Make sure it's your *own* version
                   of the song.
                 * DO include the recording, artist etc, so that other
                   people can try to get the *same* version as the tab.

   ---------------------------------------------------------
   SERIAL MIDI CARD, MIDI OUT ONLY.

   A MIDI interface card can be made using an old dual Serial Card:-

     NB. - this assumes that the card will let you configure as COM3,
           at address 3e8(hex).

     1. Change crystal from 18.432 MHz to 10Mhz. Resoldering needed.

     2. Connect midi socket to UART SOUT, (8250 pin 11), via
        a 74LS05 open circuit collector gate. It may be neccessary
        to cut the track that normally goes to the 1489 line driver.
        Pin 40 is simply a convenient point for +5v.

          FUNCTION  8250                        MIDI 5 PIN
                    PIN                         DIN SOCKET
                                       220R         o
               +5V  40 ---------------/\/\/\-------o pin 4
                         1 \    2      220R       o
               SOUT 11 -+--| \o-------/\/\/\-------o pin 5
                        |  |/                       o
                        |      74LS05 o/c collector buffer
                cut old x      (pin 14 and pin 7 Vcc and gnd).
                track   |       use the other gates for more outputs..

     3. Test and play MIDI output with a MIDI Synth/Sound Module.
        You will need to select a sustaining, guitar-like voice.

   ---------------------------------------------------------
   SERIAL MIDI CARD SOFTWARE

      � tplay, and mplay both support this card. mplay is an
        excellent command line MIDI file player written by
        Henry So. It also plays karaoke files and can be found
        on the web. Do a www search on karaoke. This card needs
        the serial card driver, sermplay.exe.

      � I think the address for mplay, for MPU401 style interfaces
        is

        http://www/teleport/~labrat/karaoke.htm

        and there is a heap of relavant info there..

-----------------------------------------------------
tplay usage:
============
>tplay filename.ext [dashtime] [show] [eraseall] [number of strings] [dest h/w]

  where:
   [dashtime]          [show]         [eraseall]
   default=100         default=1      default=1
   60 = fast           1 = show       1 = erase fingerings
   100 = moderate      0 = play       0 = leave(puts + on fingerings)

   [number of strings]        [dest h/w]
   default=6(gtr)           default=0 Sound Blaster/compat FM
   4 = bass                 1 = Serial Midi Card at COM3, 3e8
   5 = banjo                2 = both, but check the *tuning*

 egs.  tplay x.tab 100 0 1 6 1  = play and erase, on Serial MIDI card, gtr.
       tplay x.tab = show x.tab (no further switches needed).
       tplay x.tab 80 0 0    = play, but leave +'s to show fingerings
    -see demo*.bats and readme.txt for more information and examples..

   displays .tab files one row at a time.

     � IN SHOW MODE, (not in PLAY MODE):
       use % in the .tab to indicate additional line to show
       for lyrics, layout directions etc. see example .tab's

     � use @xxxx to set dash time, default is 300 msecs per dash
       notated in the tab.

     � zillions, (+/- a couple) of .tabs at OLGA, but need slight
       modification to the non-standard ones..

       I use ftp.uu.net /docs/music/guitar mostly.....

       see also the alt.tab.guitar newsgroup

     � new Australian site -
       ftp.ucc.gu.uwa.edu.au /pub/mirror/guitar

---------------------------------------------------------
DIRECTORIES
===========
If you unzipped tplay with the -d (directories) option the files
will be organised into directories. This is because of the huge
number of files you end up with.. If you didn't, tplay won't be
able to find the tab files from the batch files..

\tplay                     executeables and batch files
\tplay\tabfiles            tabs files, .tab .ban .bta
\tplay\source              tplay source and obj files

---------------------------------------------------------
DEMOS and BATCH FILES:
======================
   Because I'm lazy, (and wanted as small an executable as practical),
   there are a lot of command line parameters, and I've used human-user
   unfriendly switches. The use of batch files simplifies common usage.

   1. DEMOSHOW.BAT  this demonstrates the SHOW mode, for playing the
      displayed .tab. This works just fine *without* any sound card.
      Simply run the batch file  (full screen mode if in WINDOWS) and
      let the files play..

   2. DEMOPLAY.BAT  this (and the other batch files) demonstrate the
      PLAY mode. Here, the tab is displayed and played in real time.

   3. DEMOPLA?.BAT  == plays selected guitar tablature files, .tab.

   4. DEMOBAS?.BAT  == plays selected bass gtr tablature files, .bta.

   5. DEMOBAN?.BAT  == plays selected banjo tablature files, .ban.

   PLAY.BAT and SHOW.BAT can be modified to set up how you'd like
   tplay to behave normally.

ADDITIONAL and UNFINISHED tab files are also included..
 - mail me the good ones you wind up with...

---------------------------------------------------------
SOURCE FILES:
======================

   1. The object files required to recompile tplay.c are included.
      Edit m.bat in the sources directory to point to tcc.exe, and
      you can modify tplay to your hearts content.

   2. Changing the voices in tplay.h will allow you to get more
      realistic sounds, if you want..

   3. Changing the note offsets and values will let you use different
      tunings and instruments.

   4. Let me know of any good changes you make. I still have some ideas
      to implement, and the next versions will have the same format for
      re-compiling etc..

---------------------------------------------------------
NOTES ON HISTORY & CHANGES.
===========================

1. version a1.1         5/10/95
   i. removed pesky (&& live) from line 304 in tplay.c which was
      causing first notes of bars to be dropped..
  ii. some tabs really screw up when you consider their layout
      wrt time. These show up as un-equal length tab in the PLAY
      bottom display.
 iii. removed printf that was causing lines to be printed as
      file read in.
  iv. potential *non-bug* in batch files. Extra lines in the
      batch file, (empty, hidden lines at the bottom), cause
      tplay to exit with carriage returns at the bottom of
      display. Looks bad, does no harm though?

2. version a1.2         14/10/95
   i. changed adlib library, to suit more cards.
  ii. added more .tabs and batch files..
 iii. WINDMARY.TAB is *playable* but contains all of the quirks
      encountered with *undisciplined* tabbing..
  iv. blank tab text file templates provided, other timings can be
      simply created along similar lines...

3. version 1.3
   i. added escape, on the fly tempo adjust, and PAUSE
  ii. added real time. dashtime is now *close* to msecs/dash.
      modified batch files to make dashtimes realistic.

4. version 1.4
   i. added 4,5,6 string capability, banjo, bass etc
        check out the banjo sound blaster patch!! yee-ha!
         - demoban1.bat -- mountain dew
         - demoban2.bat -- wabash cannonball
        the bass demos are demobas*.bat

  ii. added detune value. to allow the whole frequency base to be set
      to allow for tuning. My synth has a tune knob, but not my SB card!
      ..and my guitar strings break, and the neck might bend, if the notes
      are too high..

5. version 1.5
   i. added support for *serial* midi interface. Still working on the
      MPU-401 and SB-MIDI code.
  ii. utilities now include
      a) blank tabs = .tab 6 str gtr
                    = .ban 5 str banjo
                    = .bta 4 str bass gtr
      b) asc.exe, you'll need this to figure out how to code up
         anything above the 9th fret. See ROMANZA.TAB and WINDMARY.TAB
         for examples.. Do a search and replace on "10", "11" etc to
         keep all values in use to a single character width in the tab.
         Maybe one day I'll think of a another way to do this... but it
         works for now.. "asc.exe" simply displays all that screen
         ascii characters. Because ascii codes for 1 to 9 are used,
         to get notes to play above 9, you must use the characters
         after 9 in the ascii table. ie : = 10, ; = 11 etc etc..

                +--------------------------------------------+
                | the order is :  ;  <  =  >  ?  @  A  B  C  |
                |             10 11 12 13 14 15 16 17 18 19  |
                +--------------------------------------------+
         the correct numbers are displayed in PLAY mode, but not in
         SHOW mode.., all correct positions of notes are displayed in
         both modes..

      c) panic.exe - command line program that sets all notes off
         with the serial MIDI card, to get rid of any inadvertant hung
         note-ons.. This would be a button in a #WIMPS# GUI..  /;^)
         but we dinosaurs enter "panic" and press return..   #:)

         This command can be placed in batch files as a safety
         precaution against exiting with <Escape> and leaving notes on.
         The code does check for this, but occasionally a note can
         be _hung_ on _any_ MIDI system.

 iii. added on the fly fine tune. use keypad UP and DOWN arrows..
      This will give a value for your PC and card, but need to re-compile
      at this stage to take advantage of this.. My values put tplay1_5
      executeable on concert pitch A = 438Hz. This feature can allow
      people who like to tune _slack_ to adjust tplay to suit their
      tuning, *do* need to recompile though..

  iv. added repeat "current page", (thanks Wolfgang for the suggestions).
      Left arrow now repeats the current page of tab. The bar number is
      reset, and a little arrow follows the current note..
      Right arrow is "single step forward" key..

    v. rearranged the screen layout to include a top line "menu".

   vi. added lyrics for PLAY mode.
       The line below tab displays *automatically*, every
       time.. to display the line above tab, you must use
       the % sign in the extreme left margin, then it is displayed.

   and whatever else I did..
   and called it v1.53�..                #:>   now I need some sleep..

======================================================================

GLOSSARY:
---------

MIDI means Musical Instrument Digital Interface. This is a control
protocol, (language) for controlling musical instruments or devices
over a cable by a Master controller, (computer or sequencer).

FM means Frequency Modulation, this is a waveform synthesizing technique.

HACKER. A dying breed of people who don't mind using :;<> etc to
play above the tenth fret..   #:>

## WIMPS means Windows Interface Mouse Pulldown-menuS
## GUI means Graphical User Interface.

This is a WIMPS GUI user      /;^)      (note the permanent sly wink).

======================================================================