💾 Archived View for blitter.com › OLGA › MUSIC › RESOURCES › DOS_TAB_UTILS › TABPLAY › SOURCES › TPL… captured on 2022-06-12 at 08:26:05.

View Raw

More Information

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

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <stdlib.h>
#include "adlib.h"

#define PORT 0x388
#define tabs_per_page 1
#define DETUNE 1       /* play DETUNE midi notes lower than standard */
#define LEN 100

void intro(void);
void get_tab(char filename[25]);
void init_strgs(void);
void drawfrets(void);
void drawbanjofrets(void);
void drawbassfrets(void);
void drawnote(int str, int numb);
void erasenote(int str, int numb);
void status_bar(void);
void score_board(void);

/* serial midi functions support midi interface (in serl.asm) */

extern void _snon(int ch,int num);
extern void _snoff(int ch,int num);
extern void _init(void);
extern volatile unsigned long int ticks_td;

/* various Sound Card FM stuff */
int Drum_Volume=110,Inst_Volume=127,Beats_per_minute=60;
int Delay_per_beat;

int PIANO[28] ={1,3,3,15,5,0,1,3,15,0,0,0,1,0,7,0,15,7,0,2,4,0,0,0,1,0,0,0 };
int MARIMBA[28] ={0,2,5,15,0,0,0,5,21,0,0,1,1,2,1,-72,15,0,0,0,3,0,0,0,1,0,0,0 };
int KEYBRD2[28] ={2,1,4,15,11,0,2,13,15,0,0,0,1,2,4,59,8,11,0,2,13,0,0,0,1,0,0,0 };
int CLSGTR[28] ={2,1,4,15,32,30,2,3,15,0,0,0,1,2,4,72,8,11,0,2,7,0,0,0,1,0,0,0 };
/*int ACCGTR[28] ={2,1,4,15,11,0,2,3,15,1,0,1,1,2,24,40,8,4,0,2,13,0,0,0,1,0,0,0 };*/
int ACCGTR[28] ={2,1,4,15,40,0,2,13,15,0,1,0,1,2,2,40,8,11,0,2,13,0,0,0,1,0,0,0 };
/* v1.53 int ACCGTR[28] ={2,1,4,15,11,0,2,13,15,0,1,0,1,2,4,40,8,11,0,2,13,0,0,0,1,0,0,0 }; */
int BASSGTR[28] ={1,1,4,15,6,0,2,13,15,0,0,0,1,2,4,2,8,11,0,2,7,0,0,0,1,0,0,0 };
int BANJOLIN[28] ={0,1,3,15,1,0,0,5,1,0,0,1,1,2,1,2,-72,0,0,0,3,0,0,0,1,0,0,0 };
int ELECPNO[28] ={1,1,3,15,5,0,1,3,15,0,0,0,1,0,1,1,15,7,0,2,12,0,0,0,1,0,0,0 };

/* global vars for tplay */
char TabFilename[25];
char instrument[12];
char tuning[6];
char version[6]="1.53�\0";
int data[50][6][80];
int buffer[6];
int string[6];
int tabl[50];
int dashtime=100;    /* default timing delay */
unsigned long int tick_1, tick_2, elapsedtime;
int dashmax=32;
int eraseall=0;
int instrnum=4;
int vol=64;
int tdone=0;
int showtab=1;
int sb_ok;
int strgs=6;    /* change for other instruments */
int bass=0;
int Fine_Tune=3321;
int dest_hw=0;

/* instrument table */
char	  inst[128][16] =
    {
	       /* instrument1 */
        {   0x021,0x011,0x04C,0x000,0x0F1,0x0F2,0x063,0x072,
            0x000,0x000,0x004,0x000,0x000,0x000,0x000,0x000 },

        {   0x0A5,0x0B1,0x0D2,0x080,0x081,0x0F1,0x003,0x005,
            0x000,0x000,0x002,0x000,0x000,0x000,0x000,0x000 },

        {   0x072,0x062,0x01C,0x005,0x051,0x052,0x003,0x013,
            0x000,0x000,0x00E,0x000,0x000,0x000,0x000,0x000 },

        {   0x011,0x001,0x08A,0x040,0x0F1,0x0F1,0x011,0x0B3,
            0x000,0x000,0x006,0x000,0x000,0x000,0x000,0x000 },

        {   0x021,0x011,0x011,0x000,0x0A3,0x0C4,0x043,0x022,
            0x002,0x000,0x00D,0x000,0x000,0x000,0x000,0x000 },

	       /* instrument6 */
        {   0x031,0x0A1,0x01C,0x080,0x041,0x092,0x00B,0x03B,
            0x000,0x000,0x00E,0x000,0x000,0x000,0x000,0x000 },

        {   0x071,0x062,0x0C5,0x005,0x06E,0x08B,0x017,0x00E,
            0x000,0x000,0x002,0x000,0x000,0x000,0x000,0x000 },

        {   0x041,0x091,0x083,0x000,0x065,0x032,0x005,0x074,
            0x000,0x000,0x00A,0x000,0x000,0x000,0x000,0x000 },

        {   0x032,0x016,0x087,0x080,0x0A1,0x07D,0x010,0x033,
            0x000,0x000,0x008,0x000,0x000,0x000,0x000,0x000 },

        {   0x001,0x013,0x08D,0x000,0x051,0x052,0x053,0x07C,
            0x001,0x000,0x00C,0x000,0x000,0x000,0x000,0x000 }
    } ;