LTCD_070816.ISO
This commit is contained in:
1 parent
d14bbc24f9
commit
0e9364ff4c
506 files changed
+157705
-41812
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3sFGFGetBFFDARqEC2G3FC");
|
||||
Play("sFGFGetBFFDARqEC2G3FC");
|
||||
Play("2eG3GetDB2G3qFDAReECsCRCR");
|
||||
Play("2eG3GetDB2G3qFDAReECsCRCR");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Acts,9:3\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qEeACA2G3qCEC2G3E",
|
||||
"Now... \0 \0 \0 \0 \0I \0see \0the \0light.\r\n\0 \0");
|
||||
Play("EeACA2G3qCEC2G3E",
|
||||
"Now... \0 \0 \0 \0 \0I \0see \0the \0light.\r\n\0 \0");
|
||||
Play("GCGBEeDFCAqD",
|
||||
"It's \0 \0quite \0 \0bright.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("GCGBEeDFCAqD",
|
||||
"It's \0 \0quite \0 \0bright.\r\n\0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Luke,12:16\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
while (!ScanKey) {
|
||||
Play("3etGREqDDBRGCB",
|
||||
"It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\r\n\0");
|
||||
Play("etGREqDDBRGCB",
|
||||
"If \0 \0we \0reach \0 \0the \0 \0end \0ev\0er.\r\n\0");
|
||||
Play("2sG3E2G3EqGsGBGBqDsFCFCqBRsCBCB",
|
||||
"Hand \0 \0of \0 \0God, \0 \0just \0 \0might, \0 \0in\0 \0ter\0 \0cedes.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("2G3E2G3EqGsGBGBqDsFCFCqBRsCBCB",
|
||||
"If \0 \0it's \0 \0not \0 \0deemed \0 \0right, \0 \0won't \0 \0suc\0 \0ceed.\r\n\0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//star
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("etCCBetGGDetBBFeGCetBABeAAqEqF");
|
||||
Play("etCCBetGGDetBBFeGCetBABeAAqEqF");
|
||||
Play("eCGqFqDqDqCeDGqCqB");
|
||||
Play("eCGqFqDqDqCeDGqCqB");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,22 @@
|
||||
//has words,star,star
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA",
|
||||
"Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\r\n\0");
|
||||
Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA",
|
||||
"Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\r\n\0");
|
||||
Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG");
|
||||
Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Luke,7:42\"$$\r\n"
|
||||
"\r\n"
|
||||
"Prodigal Son\r\n"
|
||||
"$$LK-A,\"BF:Luke,15:21\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
PutS("$$WW+H,1$$");
|
||||
while (!ScanKey) {
|
||||
Play("3qGGsEAEAqAsF2G3F2G3qCeEFqD",
|
||||
"Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\r\n\0 \0 \0 \0");
|
||||
Play("GGsEAEAqAsF2G3F2G3qCeEFqD",
|
||||
"Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\r\n\0 \0 \0 \0");
|
||||
Play("eFCqEBDBE2eG3EsFEFE",
|
||||
" \0 \0I \0 \0ne\0ver \0sin.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("eFCqEBDBE2eG3EsFEFE",
|
||||
" \0 \0I \0 \0ne\0ver \0win.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
PutS("$$FG,GREEN$$(A warning on presumption. 'Who loves more man -- forgiven big debt or little?' See prodigal son.)$$FG$$\r\n");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,38 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Matthew,4:19\"$$\r\n"
|
||||
"$$LK-A,\"BF:Luke,5:4\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
|
||||
while (!ScanKey) {
|
||||
Play("3qEsGEGEeF2G3BCqCeDEqBsERER",
|
||||
"$$FG$$Lord, \0I \0 \0am \0 \0feel\0ing \0just \0a \0bit \0un\0in\0spired.\r\n\0With \0 \0 \0 \0");
|
||||
Play("qEsGEGEeF2G3BCqCeDEqBsERER",
|
||||
"net \0or \0 \0with \0 \0reel\0ing \0 \0I \0keep \0get\0ting \0mired.\r\n\0 \0 \0 \0 \0");
|
||||
Play("qDetRAFqDGetFC2G3sBCBCqDF",
|
||||
"$$FG,PURPLE$$Throw \0 \0out \0your \0net.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("DetRAFqDGetFC2G3sBCBCqDF",
|
||||
"Make \0 \0you \0a \0bet.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("eGFqCqAqCqAetFDBetDBGeAFeGFqCqAqCqAetFDBetDBGeAFsDEDEetAGEsARARqDsARARqAetRFEqBsDEDEetAGEsARARqDsARARqAetRFEqB");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("eEEeGGeRReRCetABCeEDsABABe2G3GeEEeGGeRReRCetABCeEDsABABe2G3GqRqFetFFDeCRqEeFCqFet2G3RFqRqFetFFDeCRqEeFCqFet2G3RF");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qFeRRqAeRAqGDetBACeCB",
|
||||
"God \0 \0 \0is \0 \0a \0good \0God. \0(Thank \0 \0 \0God!!)\r\n\0 \0");
|
||||
Play("qFeRRqAeRAqGDetBACeCB",
|
||||
"God \0 \0 \0is \0 \0a \0good \0God. \0(Thank \0 \0 \0God!!)\r\n\0 \0");
|
||||
Play("qGsCECEeC2GqR3FeEDqEF",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0He \0is \0a \0good \0God.\r\n\0");
|
||||
Play("GsCECEeC2GqR3FeEDqEF",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0He \0is \0a \0good \0God.\r\n\0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,27 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3eGCBEqDAEetFECqED",
|
||||
"Do \0an \0act \0of \0kind\0ness.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("eGCBEqDAEetFECqED",
|
||||
"Do \0an \0act \0of \0kind\0ness.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("GFEEeAAqDFF",
|
||||
" \0 \0 \0 \0Hold \0 \0a \0hand.\r\n\0 \0");
|
||||
Play("GFEEeAAqDFF",
|
||||
" \0 \0 \0 \0Hold \0 \0a \0hand.\r\n\0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qGGGGsGGGGetFFFeEFsGGGG",
|
||||
"I've \0been \0pat\0ient; \0Grant \0 \0 \0 \0me \0 \0 \0jus\0 \0tice.\r\n\0 \0 \0 \0");
|
||||
Play("qGGGGsGGGGetFFFeEFsGGGG",
|
||||
"Not \0comp\0lan\0cient; \0You \0 \0 \0 \0are \0 \0 \0whit\0 \0ness.\r\n\0 \0 \0 \0");
|
||||
Play("BBBBeCCqDDA2G3etAAAqB",
|
||||
"All \0 \0 \0 \0my \0 \0foes \0 \0re\0joice \0o\0ver \0 \0me.\r\n\0");
|
||||
Play("sBBBBeCCqDDA2G3etAAAqB",
|
||||
"See \0 \0 \0 \0their \0 \0throes; \0 \0Now, \0it's \0they \0that \0are \0stoned.\r\n\0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,37 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
try {
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Matthew,19:16\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
PutS("$$WW+H,1$$");
|
||||
while (!ScanKey) {
|
||||
Play("3eGAetCCCFFDqAeAAFAAFqG",
|
||||
"I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\r\n\0");
|
||||
Play("eGAetCCCFFDqAeAAFAAFqG",
|
||||
"I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\r\n\0");
|
||||
Play("EeEGqEeEEqDBetCCGqC",
|
||||
"What \0 \0 \0else \0 \0 \0must \0I \0do?\r\n\0 \0 \0 \0");
|
||||
Play("EeEGqEeEEqDBetCCGqC",
|
||||
"What \0 \0 \0else \0 \0 \0must \0I \0do?\r\n\0 \0 \0 \0");
|
||||
PutS("$$FG,GREEN$$(Christ said sell all and follow me.)\r\n$$FG$$");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//star
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("qCqFeDEetDCCetCCCqDqAqC");
|
||||
Play("qCqFeDEetDCCetCCCqDqAqC");
|
||||
Play("qFqEetFAFqAqDeGAqEeBC");
|
||||
Play("qFqEetFAFqAqDeGAqEeBC");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,38 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:John,16:28\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
PutS("$$WW+H,1$$");
|
||||
while (!ScanKey) {
|
||||
Play("3qBBDsDGDGqFeFAFAqB",
|
||||
"Now, \0I \0go \0 \0 \0 \0 \0to \0the \0 \0Fa\0th\0er.\r\n\0");
|
||||
Play("BBDsDGDGqFeFAFAqB",
|
||||
"Now, \0I \0go \0 \0 \0 \0 \0to \0the \0 \0Fa\0th\0er.\r\n\0");
|
||||
Play("EDetBEA2eG3CsECECqGDeDD",
|
||||
"Don't \0worry. \0 \0 \0 \0 \0 \0I'll \0 \0 \0 \0be \0back.\r\n\0 \0 \0");
|
||||
Play("qEDetBEA2eG3CsECECqGDeDD",
|
||||
"Don't \0worry. \0 \0 \0 \0 \0 \0I'll \0 \0 \0 \0be \0back.\r\n\0 \0 \0");
|
||||
PutS("$$FG,GREEN$$(Christ promised to return.)\r\n$$FG$$");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,37 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qBDAGFFeBAsD2G3D2G",
|
||||
"Do \0not \0push \0your \0luck.\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3qBDAGFFeBAsD2G3D2G",
|
||||
"Do \0not \0push \0your \0luck.\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3qGFCeCGqFetAAFqEF",
|
||||
"God \0is \0not \0 \0a \0schmuck.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("GFCeCGqFetAAFqEF",
|
||||
"God \0is \0not \0 \0a \0schmuck.\r\n\0 \0 \0 \0 \0 \0");
|
||||
|
||||
Play("3qBDAGFFeBAsD2G3D2G",
|
||||
"\r\nDo \0not \0tell \0the \0Lord\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3qBDAGFFeBAsD2G3D2G",
|
||||
"that \0you're \0feel\0ing \0bored.\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3qGFCeCGqFetAAFqEF",
|
||||
"He \0will \0send \0 \0the \0sword.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("GFCeCGqFetAAFqEF",
|
||||
"He \0will \0send \0 \0the \0sword.\r\n\r\n\0 \0 \0 \0 \0 \0");
|
||||
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,24 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
music_stacatto_factor=0.8;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3eEEqCGGeGBDGEBsG2G3G2G");
|
||||
Play("3eEEqCGGeGBDGEBsG2G3G2G");
|
||||
Play("3qFDetB2GGsGGGG3eEEetBEGqGeDA");
|
||||
Play("qFDetB2GGsGGGG3eEEetBEGqGeDA");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,28 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qBeGDetCBCqGAeGCqDC",
|
||||
" \0I \0 \0don't \0 \0 \0mind, \0 \0 \0 \0you \0de\0");
|
||||
Play("BeGDetCBCqGAeGCqDC",
|
||||
"cide.\r\n\0I \0 \0don't \0 \0 \0mind.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("etDFGqEeDGqFEetDFFqBetBDB",
|
||||
"I \0trust \0God \0 \0 \0 \0to \0 \0look-out \0for \0me.\r\n\0 \0 \0 \0 \0");
|
||||
Play("DFGqEeDGqFEetDFFqBetBDB",
|
||||
"I \0trust \0God \0 \0 \0 \0to \0 \0look-out \0for \0me.\r\n\0 \0 \0 \0 \0");
|
||||
Play("qC");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
TssStruct *tss;
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Mark,4:37\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qEsGEGEqDsCCCCqBsDEDEqFG",
|
||||
"Lord, \0there's \0 \0a \0 \0storm \0u\0 \0 \0 \0pon \0the \0 \0 \0 \0sea.\r\n\0 \0");
|
||||
Play("EsGEGEqDsCCCCqBsDEDEqFG",
|
||||
"Lord, \0there's \0 \0a \0 \0storm \0u\0 \0 \0 \0pon \0the \0 \0 \0 \0sea.\r\n\0 \0");
|
||||
Play("GEC2G3etB2G3FGGEDBBeBE",
|
||||
"$$FG,PURPLE$$Re\0lax \0fel\0las.$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qGEC2G3etB2G3FGGEDBBeBE",
|
||||
"$$FG,GREEN$$(Sea \0be\0came \0glass.)$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Matthew,14:19\"$$\r\n"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3etGCECAFqFFAFBD",
|
||||
"We \0 \0don't \0 \0have \0e\0nough.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("etGCECAFqFFAFBD",
|
||||
"$$FG,PURPLE$$You \0 \0don't \0 \0halve \0e\0nough.\r\n\0 \0 \0 \0 \0 \0");
|
||||
Play("AeGFGDqEAeCEGAetFAF",
|
||||
" \0Try \0 \0 \0 \0to \0share.\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qAeGFGDqEAeCEGAetFAF",
|
||||
" \0Try \0 \0 \0 \0to \0share.$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
//has words,star,star,star
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C");
|
||||
Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C");
|
||||
Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC",
|
||||
"In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\r\n\0");
|
||||
Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC",
|
||||
"In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\r\n\0");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qB2G3DsBABABDBDqDeAD2sG3A2G3A",
|
||||
"All \0seeing \0eye.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qB2G3DsBABABDBDqDeAD2sG3A2G3A",
|
||||
"It's \0no \0lie.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qEGC2sG3B2G3B2G3B2G3BqDetBGAsGGGG",
|
||||
"God \0sees \0you.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qEGC2sG3B2G3B2G3B2G3BqDetBGAsGGGG",
|
||||
"Yes, \0it's \0true.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,29 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
PutS("$$WW+H,1$$");
|
||||
while (!ScanKey) {
|
||||
Play("qR3eG2G3qDsCCCCqDeCCetDDBsR2GRG",
|
||||
" \0Be\0ing \0rid \0of \0 \0 \0 \0sin \0is \0a \0bit\0ter \0 \0 \0pill.\r\n\0 \0 \0");
|
||||
Play("qR3eG2G3qDsCCCCqDeCCetDDBsR2GRG",
|
||||
" \0Be\0ing \0rid \0of \0 \0 \0 \0sin \0is \0a \0bit\0ter \0 \0 \0pill.\r\n\0 \0 \0");
|
||||
Play("3eCDqFAAeA2G3etA2G3AeCCAR",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("CDqFAAeA2G3etA2G3AeCCAR");
|
||||
PutS("$$FG,GREEN$$(This isn't a riddle, oddly enough.)$$FG$$\r\n");
|
||||
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
TssStruct *tss;
|
||||
tss=PopUpViewStr(
|
||||
"$$LK-A,\"BF:Matthew,25:15\"$$"
|
||||
);
|
||||
WaitTskIdle(tss);
|
||||
tss->win_right=Fs->win_right;
|
||||
tss->win_left=Fs->win_left;
|
||||
tss->win_top=Fs->win_bottom+3;
|
||||
tss->win_bottom=tss->win_top+12;
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qDetBAReGEqCCA2G3etFAC",
|
||||
"Ma\0as\0ter! \0 \0I \0made \0more \0for \0you.\r\n\0 \0 \0 \0 \0");
|
||||
Play("qDetBAReGEqCCA2G3etFAC",
|
||||
"Ma\0as\0ter! \0 \0I \0made \0more \0for \0you!\r\n\0 \0 \0 \0 \0");
|
||||
Play("eCB2qG3EFFG2G3etCFG",
|
||||
" \0 \0 \0Got \0some\0thing \0else?\r\n\0 \0 \0 \0 \0");
|
||||
Play("eCB2qG3EFFG2G3etCFG",
|
||||
" \0 \0 \0Got \0some\0thing \0else?\r\n\0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("qGsCECEsGAGAsEBEBqFeFFeDEqF",
|
||||
"Shout! \0 \0 \0Let \0 \0your \0 \0voice \0 \0be \0 \0heard.\r\n\0");
|
||||
Play("qGsCECEsGAGAsEBEBqFeFFeDEqF",
|
||||
"Shout! \0 \0 \0Let \0 \0your \0 \0voice \0 \0be \0 \0heard.\r\n\0");
|
||||
Play("e2G3CetDAAetFBEsD2G3D2G3qDqCetBEEsAFAF");
|
||||
Play("e2G3CetDAAetFBEsD2G3D2G3qDqCetBEEsAFAF");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3eDRetAAAsBCBCeEGqF2GsG3B2G3BeDF",
|
||||
"Good! \0 \0Now, \0 \0 \0I \0 \0don't \0 \0have \0to \0wor\0ry.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("DRetAAAsBCBCeEGqF2GsG3B2G3BeDF",
|
||||
"Good! \0 \0Now, \0 \0 \0I \0 \0don't \0 \0have \0to \0wor\0ry.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qFRAetACEqEG2G3sBRBR");
|
||||
Play("qFRAetACEqEG2G3sBRBR");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("qAqBqFqFqDeEGeFDeDE",
|
||||
"Show \0some \0love.\r\n\0");
|
||||
Play("qAqBqFqFqDeEGeFDeDE",
|
||||
"Show \0some \0love.\r\n\0");
|
||||
Play("eABeFAqFeFDetDBBqGeCGqA",
|
||||
"As \0 \0you \0 \0mea\0 \0sure \0 \0 \0out...\r\n\0");
|
||||
Play("eABeFAqFeFDetDBBqGeCGqA",
|
||||
"As \0 \0you \0 \0mea\0 \0sure \0 \0 \0out...\r\n\0");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,27 @@
|
||||
void EndTsk()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
void Song()
|
||||
{
|
||||
Fs->end_task_cb=&EndTsk;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3sFGFGetDCFqD2G3DGDetDFB",
|
||||
"God, \0 \0 \0 \0please \0 \0 \0help \0me.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("sFGFGetDCFqD2G3DGDetDFB",
|
||||
"God, \0 \0 \0 \0please \0 \0 \0help \0me.\r\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qACADetF2G3B2sG3F2G3FetCDFsDFDF",
|
||||
"Thy \0will \0be \0done.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qACADetF2G3B2sG3F2G3FetCDFsDFDF",
|
||||
"Thy \0will \0be \0done.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
Sound(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,73 @@
|
||||
void InsertNote(I1 *buf,U4 k,U4 *j)
|
||||
{
|
||||
if (k==0) {
|
||||
buf[*j]='2';
|
||||
*j=*j+1;
|
||||
|
||||
buf[*j]='G';
|
||||
*j=*j+1;
|
||||
|
||||
buf[*j]='3';
|
||||
*j=*j+1;
|
||||
} else if (k==8) {
|
||||
buf[*j]='R';
|
||||
*j=*j+1;
|
||||
} else {
|
||||
buf[*j]=k-1+'A';
|
||||
*j=*j+1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
I1 *MakeSong()
|
||||
{
|
||||
I1 *buf=MAllocZ(256),
|
||||
buf2[256];
|
||||
U4 i,j=0,k,n,k2;
|
||||
for (i=0;i<8;i++) {
|
||||
SPrintF(buf2,"Picks Left:%d",8-i);
|
||||
k=RandU4;
|
||||
n=k/9;
|
||||
k=k%9;
|
||||
switch (n%6) {
|
||||
case 0:
|
||||
buf[j++]='e';
|
||||
InsertNote(buf,k,&j);
|
||||
SPrintF(buf2,"Picks Left:%d:1",8-i);
|
||||
k=RandU4;
|
||||
k=k%9;
|
||||
InsertNote(buf,k,&j);
|
||||
break;
|
||||
case 1:
|
||||
buf[j++]='e';
|
||||
buf[j++]='t';
|
||||
InsertNote(buf,k,&j);
|
||||
SPrintF(buf2,"Picks Left:%d:2",8-i);
|
||||
k=RandU4;
|
||||
k=k%9;
|
||||
InsertNote(buf,k,&j);
|
||||
SPrintF(buf2,"Picks Left:%d:1",8-i);
|
||||
k=RandU4;
|
||||
k=k%9;
|
||||
InsertNote(buf,k,&j);
|
||||
break;
|
||||
case 2:
|
||||
buf[j++]='s';
|
||||
InsertNote(buf,k,&j);
|
||||
k2=k;
|
||||
SPrintF(buf2,"Picks Left:%d:1",8-i);
|
||||
k=RandU4;
|
||||
k=k%9;
|
||||
InsertNote(buf,k,&j);
|
||||
InsertNote(buf,k2,&j);
|
||||
InsertNote(buf,k,&j);
|
||||
break;
|
||||
default:
|
||||
buf[j++]='q';
|
||||
InsertNote(buf,k,&j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
buf[j++]=0;
|
||||
return buf;
|
||||
}
|
||||
@@ -0,0 +1,992 @@
|
||||
class OrgNote
|
||||
{
|
||||
OrgNote *next,*last;
|
||||
I1 note,octive,duration;
|
||||
I1 ascii[9];
|
||||
I1 *word;
|
||||
};
|
||||
|
||||
class OrgCtrl
|
||||
{
|
||||
OrgNote root;
|
||||
BoolU4 record_on;
|
||||
I8 screen_x;
|
||||
OrgNote *cur_note,*insert_point;
|
||||
void old_update(TssStruct *tss);
|
||||
};
|
||||
|
||||
I1 *org_note_list="A\0A#\0B\0C\0C#\0D\0D#\0E\0F\0F#\0G\0G#\0\0";
|
||||
I1 org_note_map[12]={6,6,5,4,4,3,3,2,1,1,0,0};
|
||||
I1 org_note_inverse_map[7]={10,8,7,5,3,2,0};
|
||||
|
||||
|
||||
$PI,"<PI2>",2$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI3>",3$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI4>",4$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI5>",5$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI6>",6$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI7>",7$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI8>",8$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI9>",9$
|
||||
|
||||
|
||||
|
||||
$PI,"<PI11>",11$
|
||||
|
||||
|
||||
$PI,"<PI18>",18$
|
||||
|
||||
|
||||
$PI,"<PI19>",19$
|
||||
|
||||
|
||||
$PI,"<PI20>",20$
|
||||
|
||||
|
||||
$PI,"<PI21>",21$
|
||||
|
||||
|
||||
|
||||
|
||||
#define ORG_NOTE_SPACING 9
|
||||
#define ORG_NUM_DURATIONS 8
|
||||
double org_durations[ORG_NUM_DURATIONS+1]={2*.25/3,.25,2*.5/3,.5,2.0/3.0,1.0,2.0,4.0,1000000.0};
|
||||
I1 *org_duration_list="st\0s\0et\0e\0qt\0q\0h\0w\0\0";
|
||||
U1 *org_duration_PI_map[ORG_NUM_DURATIONS]={$IB,"<IB7>",7$,$IB,"<IB2>",2$,$IB,"<IB8>",8$,
|
||||
$IB,"<IB3>",3$,$IB,"<IB9>",9$,$IB,"<IB4>",4$,
|
||||
$IB,"<IB5>",5$,$IB,"<IB6>",6$};
|
||||
|
||||
|
||||
void DrawIt(TssStruct *tss)
|
||||
{
|
||||
OrgCtrl *oc=tss->user_data0;
|
||||
OrgNote *tempo;
|
||||
I8 i,y;
|
||||
I8 w=tss->win_pixel_right-tss->win_pixel_left;
|
||||
I8 h=tss->win_pixel_bottom-tss->win_pixel_top;
|
||||
GrBitMap *base=GrAlias(grbase2,tss);
|
||||
|
||||
|
||||
ClearWinText(tss);
|
||||
base->color=BLACK;
|
||||
for (i=1;i<6;i++)
|
||||
GrLine(base,0,i*8,w,i*8);
|
||||
for (i=7;i<12;i++)
|
||||
GrLine(base,0,i*8,w,i*8);
|
||||
|
||||
i=0;
|
||||
tempo=oc->root.next;
|
||||
while (tempo!=&oc->root) {
|
||||
if (tempo==oc->cur_note)
|
||||
base->color=GREEN;
|
||||
else {
|
||||
if (tempo->octive)
|
||||
base->color=BLACK;
|
||||
else
|
||||
base->color=DKGRAY;
|
||||
if (tempo->word)
|
||||
if (StrCmp(tempo->word," "))
|
||||
base->color=RED;
|
||||
}
|
||||
if (tempo->octive)
|
||||
y=(15+(org_note_map[tempo->note]-7*(tempo->octive-3)))*4;
|
||||
else
|
||||
y=50;
|
||||
base->bkcolor=WHITE;
|
||||
GrElemsPlot(base,8+i*ORG_NOTE_SPACING-oc->screen_x,y,0,
|
||||
org_duration_PI_map[tempo->duration]);
|
||||
tempo=tempo->next;
|
||||
i++;
|
||||
}
|
||||
GrDel(base);
|
||||
oc->old_update(tss);
|
||||
}
|
||||
|
||||
OrgNote *OrgFindNote(I8 x,I8 y)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
OrgNote *tempo=oc->root.next;
|
||||
I8 i=(x+oc->screen_x-8+ORG_NOTE_SPACING/2)/ORG_NOTE_SPACING;
|
||||
nounusedwarn y;
|
||||
while (i-- && tempo!=&oc->root)
|
||||
tempo=tempo->next;
|
||||
if (tempo==&oc->root)
|
||||
tempo=NULL;
|
||||
return tempo;
|
||||
}
|
||||
|
||||
#define ORGR_REST -5
|
||||
#define ORGR_INSERT_NOTE -4
|
||||
#define ORGR_DELETE_NOTE -3
|
||||
#define ORGR_SET_WORD -2
|
||||
|
||||
double PopUpDuration()
|
||||
{
|
||||
I8 i;
|
||||
Ltf *l=LtfNew;
|
||||
LtfPrintF(l,"$$MU,\"Set Word\" %d$$\r\n",ORGR_SET_WORD);
|
||||
LtfPrintF(l,"$$MU,\"Make Rest\" %d$$\r\n",ORGR_REST);
|
||||
LtfPrintF(l,"$$MU,\"Insert Note\" %d$$\r\n",ORGR_INSERT_NOTE);
|
||||
LtfPrintF(l,"$$MU,\"Delete Note\" %d$$\r\n\r\n",ORGR_DELETE_NOTE);
|
||||
for (i=0;i<ORG_NUM_DURATIONS;i++)
|
||||
LtfPrintF(l,"$$MU,\"%7.5f\" %d$$\r\n",org_durations[i],i);
|
||||
i=PopUpMenu(l);
|
||||
LtfDel(l);
|
||||
return i;
|
||||
}
|
||||
|
||||
void OrgRightClick(I8 x,I8 y)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
I1 *st,*st2;
|
||||
OrgNote *tempo=OrgFindNote(x,y),*tempo1;
|
||||
I8 i;
|
||||
U8 old_ltf_flags=Fs->cur_ltf->flags;
|
||||
oc->insert_point=tempo;
|
||||
oc->cur_note=tempo;
|
||||
if (tempo) {
|
||||
Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
ip_inhibit_win_operations=FALSE;
|
||||
i=PopUpDuration;
|
||||
if (i>=0 && i<ORG_NUM_DURATIONS)
|
||||
tempo->duration=i;
|
||||
else {
|
||||
switch (i) {
|
||||
case ORGR_REST:
|
||||
tempo->octive=0;
|
||||
tempo->note=0;
|
||||
break;
|
||||
case ORGR_SET_WORD:
|
||||
Fs->cur_ltf->flags&=~LTFF_FORM;
|
||||
if (tempo->word)
|
||||
st2=MSPrintF("\r\nWord(\"%Q\"):",tempo->word);
|
||||
else
|
||||
st2=MSPrintF("\r\nWord(\"\"):");
|
||||
LtfBottom(Fs->cur_ltf);
|
||||
st=PmtStr(st2);
|
||||
Free(st2);
|
||||
Free(tempo->word);
|
||||
if (*st) {
|
||||
tempo->word=MSPrintF("%q",st);
|
||||
Free(st);
|
||||
} else
|
||||
tempo->word=NewStr(" ");
|
||||
Fs->cur_ltf->flags=old_ltf_flags;
|
||||
break;
|
||||
case ORGR_INSERT_NOTE:
|
||||
tempo1=MAllocIdentical(tempo);
|
||||
tempo1->word=NewStr(tempo->word);
|
||||
InsQue(tempo1,tempo);
|
||||
break;
|
||||
case ORGR_DELETE_NOTE:
|
||||
oc->insert_point=tempo->next;
|
||||
oc->cur_note=oc->insert_point;
|
||||
RemQue(tempo);
|
||||
Free(tempo->word);
|
||||
Free(tempo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
ip_inhibit_win_operations=TRUE;
|
||||
Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
}
|
||||
}
|
||||
|
||||
void OrgLeftClick(I8 x,I8 y)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
OrgNote *tempo=OrgFindNote(x,y);
|
||||
I8 o,n,cmd,p1,p2;
|
||||
oc->insert_point=tempo;
|
||||
oc->cur_note=tempo;
|
||||
if (tempo) {
|
||||
do {
|
||||
cmd=GetMsg(&p1,&p2,1<<MSG_IP_L_UP|1<<MSG_IP_MOVE|1<<MSG_IP_R_UP);
|
||||
if (cmd==MSG_IP_R_UP)
|
||||
OrgRightClick(p1,p2);
|
||||
else {
|
||||
p2=p2/4-15;
|
||||
n=-p2%7;
|
||||
o=3+p2/-7;
|
||||
n=-n;
|
||||
if (n<0) {
|
||||
n+=7;
|
||||
o++;
|
||||
}
|
||||
n=org_note_inverse_map[n];
|
||||
tempo->note=n;
|
||||
tempo->octive=o;
|
||||
}
|
||||
} while (cmd!=MSG_IP_L_UP);
|
||||
}
|
||||
}
|
||||
|
||||
void OrgPlayEnd()
|
||||
{
|
||||
Sound(0);
|
||||
Exit;
|
||||
}
|
||||
|
||||
#define ORGPM_NORMAL 0
|
||||
#define ORGPM_REVERB1 1
|
||||
|
||||
#define ORGPM_NUM_PLAY_MODES 2
|
||||
|
||||
U8 org_play_mode=0;
|
||||
double org_play_f=0;
|
||||
void OrgPlayTsk()
|
||||
{
|
||||
BoolU4 going_up=TRUE;
|
||||
U8 i=0;
|
||||
double f=0,f2=0;
|
||||
Fs->end_task_cb=&OrgPlayEnd;
|
||||
while (TRUE) {
|
||||
i++;
|
||||
switch (org_play_mode) {
|
||||
case ORGPM_NORMAL:
|
||||
if (org_play_f!=f) {
|
||||
f=org_play_f;
|
||||
Sound(f);
|
||||
}
|
||||
break;
|
||||
case ORGPM_REVERB1:
|
||||
if (org_play_f!=f) {
|
||||
if (f>0)
|
||||
f2=f;
|
||||
f=org_play_f;
|
||||
}
|
||||
if (!(i&15)) {
|
||||
if (i&16)
|
||||
Sound(f);
|
||||
else
|
||||
Sound(f2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
Sleep(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U1 OrgCvtDuration(double d)
|
||||
{
|
||||
double d1,d2;
|
||||
I8 j;
|
||||
for (j=0;j<ORG_NUM_DURATIONS;j++) {
|
||||
d1=org_durations[j];
|
||||
d2=org_durations[j+1];
|
||||
if (d<d1*d2/(d1+d2))
|
||||
return j;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
I1 *OrgMusicSetOctive(I1 *st,U8 *org_octive)
|
||||
{
|
||||
I1 ch=*st++;
|
||||
while (ch>='0' && ch<='9') {
|
||||
*org_octive=ch-'0';
|
||||
ch=*st++;
|
||||
}
|
||||
return --st;
|
||||
}
|
||||
|
||||
I1 *OrgMusicSetNoteLen(I1 *st,double *org_duration)
|
||||
{
|
||||
BoolU4 cont=TRUE;
|
||||
do {
|
||||
switch (*st++) {
|
||||
case 'w': *org_duration=4.0; break;
|
||||
case 'h': *org_duration=2.0; break;
|
||||
case 'q': *org_duration=1.0; break;
|
||||
case 'e': *org_duration=0.5; break;
|
||||
case 's': *org_duration=0.25; break;
|
||||
case 't': *org_duration=2.0* *org_duration/3.0; break;
|
||||
case '.': *org_duration=1.5* *org_duration; break;
|
||||
default:
|
||||
st--;
|
||||
cont=FALSE;
|
||||
}
|
||||
} while (cont);
|
||||
return st;
|
||||
}
|
||||
|
||||
void OrgLoadSongStr(I1 *st,U8 *org_octive,double *org_duration)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
OrgNote *tempo;
|
||||
U8 note,i=0;
|
||||
while (*st) {
|
||||
tempo=MAllocZ(sizeof(OrgNote));
|
||||
st=OrgMusicSetOctive(st,org_octive);
|
||||
st=OrgMusicSetNoteLen(st,org_duration);
|
||||
st=OrgMusicSetOctive(st,org_octive);
|
||||
if (!*st) break;
|
||||
note=*st++-'A';
|
||||
if (note<7) {
|
||||
note=music_note_map[note];
|
||||
if (*st=='b') {
|
||||
note--;
|
||||
st++;
|
||||
} else if (*st=='#') {
|
||||
note++;
|
||||
st++;
|
||||
}
|
||||
tempo->note=note;
|
||||
tempo->octive=*org_octive;
|
||||
} else {
|
||||
tempo->note=0;
|
||||
tempo->octive=0;
|
||||
}
|
||||
if (*org_duration<=2*.25/3)
|
||||
i=0;
|
||||
else if (*org_duration<=.25)
|
||||
i=1;
|
||||
else if (*org_duration<=2*.5/3)
|
||||
i=2;
|
||||
else if (*org_duration<=.5)
|
||||
i=3;
|
||||
else if (*org_duration<=2.0/3)
|
||||
i=4;
|
||||
else if (*org_duration<=1.0)
|
||||
i=5;
|
||||
else if (*org_duration<=2.0)
|
||||
i=6;
|
||||
else
|
||||
i=7;
|
||||
tempo->duration=i;
|
||||
InsQue(tempo,oc->root.last);
|
||||
}
|
||||
}
|
||||
|
||||
void OrgLoadSong(I1 *filename,U8 *org_octive,double *org_duration)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
I1 *st;
|
||||
OrgNote *tempo;
|
||||
LexStruct *lx=LexNew(ReadTextFile(filename),0,NewStr(filename));
|
||||
Lex(lx);
|
||||
while (lx->token) {
|
||||
if (lx->token==TK_IDENT)
|
||||
if (!StrCmp(lx->ident,"Play"))
|
||||
if (Lex(lx)=='(')
|
||||
if (Lex(lx)==TK_STR) {
|
||||
tempo=oc->root.last;
|
||||
st=LexExtendStr(lx);
|
||||
OrgLoadSongStr(st,org_octive,org_duration);
|
||||
if (lx->token==',') {
|
||||
if (Lex(lx)==TK_STR) {
|
||||
st=LexExtendStr(lx);
|
||||
do {
|
||||
tempo=tempo->next;
|
||||
tempo->word=NewStr(st);
|
||||
st+=StrLen(st)+1;
|
||||
} while (*st);
|
||||
}
|
||||
}
|
||||
}
|
||||
Lex(lx);
|
||||
}
|
||||
LexDel(lx);
|
||||
}
|
||||
|
||||
I1 *OrgCvtSong()
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
OrgNote *tempo;
|
||||
I1 *buf,*src,*dst;
|
||||
U8 i,note,octive,last_octive,last_duration;
|
||||
|
||||
i=0;
|
||||
tempo=oc->root.next;
|
||||
last_octive=-1;
|
||||
last_duration=-1;
|
||||
while (tempo!=&oc->root) {
|
||||
dst=&tempo->ascii;
|
||||
octive=tempo->octive;
|
||||
note=tempo->note;
|
||||
if (octive!=last_octive && (note || octive)) {
|
||||
*dst++=octive+'0';
|
||||
last_octive=octive;
|
||||
}
|
||||
if (tempo->duration!=last_duration) {
|
||||
src=PointAtListEntry(tempo->duration,org_duration_list);
|
||||
*dst++=src[0];
|
||||
if (src[1])
|
||||
*dst++=src[1];
|
||||
last_duration=tempo->duration;
|
||||
}
|
||||
if (note || octive) {
|
||||
src=PointAtListEntry(note,org_note_list);
|
||||
*dst++=src[0];
|
||||
if (src[1])
|
||||
*dst++=src[1];
|
||||
} else
|
||||
*dst++='R';
|
||||
*dst++=0;
|
||||
i+=StrLen(tempo->ascii);
|
||||
tempo=tempo->next;
|
||||
}
|
||||
|
||||
buf=MAlloc(i+1);
|
||||
dst=buf;
|
||||
tempo=oc->root.next;
|
||||
while (tempo!=&oc->root) {
|
||||
StrCpy(dst,tempo->ascii);
|
||||
dst+=StrLen(tempo->ascii);
|
||||
tempo=tempo->next;
|
||||
}
|
||||
*dst++=0;
|
||||
return buf;
|
||||
}
|
||||
|
||||
void OrgDelSong(I1 *full_filename)
|
||||
{
|
||||
EditFileNameStruct fn;
|
||||
if (full_filename) {
|
||||
StrCpy(fn.name,full_filename);
|
||||
if (DoForm(&fn,"EditFileNameStruct"))
|
||||
Del(fn.name);
|
||||
}
|
||||
}
|
||||
|
||||
void OrgSaveSong(I1 *dirname,I1 *full_filename=NULL)
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
Ltf *l=LtfNew;
|
||||
BoolU4 has_words;
|
||||
OrgNote *tempo,*tempo1;
|
||||
double two_measure_left=8.0;
|
||||
I1 *ptr,ch;
|
||||
|
||||
Free(OrgCvtSong); //set tempo->ascii;
|
||||
tempo=oc->root.next;
|
||||
tempo1=tempo;
|
||||
has_words=FALSE;
|
||||
|
||||
LtfPutSExt(l,
|
||||
"void EndTsk()\r\n"
|
||||
"{\r\n"
|
||||
" Sound(0);\r\n"
|
||||
" Exit;\r\n"
|
||||
"}\r\n"
|
||||
"\r\n"
|
||||
"void Song()\r\n"
|
||||
"{\r\n"
|
||||
" Fs->end_task_cb=&EndTsk;\r\n"
|
||||
" music_tempo=2.5;\r\n"
|
||||
" try {\r\n"
|
||||
" while (!ScanKey) {\r\n"
|
||||
"\tPlay(\"");
|
||||
while (tempo!=&oc->root) {
|
||||
LtfPutSExt(l,tempo->ascii);
|
||||
if (tempo->word) has_words=TRUE;
|
||||
two_measure_left-=org_durations[tempo->duration];
|
||||
tempo=tempo->next;
|
||||
if (two_measure_left<0.001 && tempo!=&oc->root) {
|
||||
if (has_words) {
|
||||
LtfPutSExt(l,"\",\r\n\t\t\"");
|
||||
while (tempo1!=tempo) {
|
||||
if (tempo1->word) {
|
||||
ptr=tempo1->word;
|
||||
while (ch=*ptr) {
|
||||
if (ch==CH_SPACE)
|
||||
*ptr=CH_SHIFT_SPACE;
|
||||
ptr++;
|
||||
}
|
||||
LtfPrintF(l,"%Q\\0",tempo1->word);
|
||||
} else
|
||||
LtfPrintF(l,"%c\\0",CH_SHIFT_SPACE);
|
||||
tempo1=tempo1->next;
|
||||
}
|
||||
}
|
||||
LtfPutSExt(l,"\");\r\n");
|
||||
LtfPutSExt(l,"\tPlay(\"");
|
||||
two_measure_left=8.0;
|
||||
tempo1=tempo;
|
||||
has_words=FALSE;
|
||||
}
|
||||
}
|
||||
if (has_words) {
|
||||
LtfPutSExt(l,"\",\r\n\t\t\"");
|
||||
while (tempo1!=tempo) {
|
||||
if (tempo1->word) {
|
||||
ptr=tempo1->word;
|
||||
while (ch=*ptr) {
|
||||
if (ch==CH_SPACE)
|
||||
*ptr=CH_SHIFT_SPACE;
|
||||
ptr++;
|
||||
}
|
||||
LtfPrintF(l,"%Q\\0",tempo1->word);
|
||||
} else
|
||||
LtfPrintF(l,"%c\\0",CH_SHIFT_SPACE);
|
||||
tempo1=tempo1->next;
|
||||
}
|
||||
}
|
||||
LtfPutSExt(l,"\");\r\n"
|
||||
" }\r\n"
|
||||
" } catch\r\n"
|
||||
" Fs->catch_except=TRUE;\r\n"
|
||||
" Sound(0);\r\n"
|
||||
"}\r\n"
|
||||
"\r\n"
|
||||
"Song;\r\n");
|
||||
LtfRecalc(l);
|
||||
if (full_filename)
|
||||
StrCpy(l->filename.name,full_filename);
|
||||
else
|
||||
SPrintF(l->filename.name,"%s/Temp.CPZ",dirname);
|
||||
LtfWrite(l,TRUE);
|
||||
LtfDel(l);
|
||||
}
|
||||
|
||||
void OrgClearSong()
|
||||
{
|
||||
OrgCtrl *oc=Fs->user_data0;
|
||||
OrgNote *tempo,*tempo1;
|
||||
tempo=oc->root.next;
|
||||
while (tempo!=&oc->root) {
|
||||
tempo1=tempo->next;
|
||||
Free(tempo);
|
||||
tempo=tempo1;
|
||||
}
|
||||
oc->root.next=&oc->root;
|
||||
oc->root.last=&oc->root;
|
||||
}
|
||||
|
||||
void OrgHelp(I8 org_octive)
|
||||
{
|
||||
I8 i;
|
||||
coutln "$$CL$$$$BD,LTGRAY$$$$FD,YELLOW$$$$BU,LTGRAY$$$$FU,YELLOW$$$$FM,YELLOW$$$$BM,LTGRAY$$$$CM,0,12$$";
|
||||
coutln " E R T U I P [ ] ";
|
||||
coutln "A S D F G H J K L ; ' ENTER";
|
||||
coutln;
|
||||
coutln "$$FG,LTRED$$SPACE$$FG$$\t\tRest";
|
||||
coutln "$$FG,LTRED$$BACKSPACE$$FG$$\t$$MA+A-X,\"Deletes Last Note\",\"\\x08\"$$";
|
||||
coutln "$$FG,LTRED$$Left Mouse$$FG$$\tDrag note";
|
||||
coutln "$$FG,LTRED$$Right Mouse$$FG$$\tChange duration or set word";
|
||||
PutGrElem($IB,"<IB11>",11$,$IS,"<IS11>",11$,"$$PI+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT);\",%d$$");
|
||||
cout " ";
|
||||
PutGrElem($IB,"<IB19>",19$,$IS,"<IS19>",19$,"$$PI+LM,\"\",\"x\",%d$$");
|
||||
cout " ";
|
||||
if (Fs->user_data0><(OrgCtrl *)->record_on)
|
||||
PutGrElem($IB,"<IB20>",20$,$IS,"<IS20>",20$,"$$PI+LM,\"\",\"z\",%d$$");
|
||||
else
|
||||
PutGrElem($IB,"<IB21>",21$,$IS,"<IS21>",21$,"$$PI+LM,\"\",\"z\",%d$$");
|
||||
cout " ";
|
||||
PutGrElem($IB,"<IB18>",18$,$IS,"<IS18>",18$,"$$PI+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\",%d$$");
|
||||
cout "\r\n\r\n\rOctive: $$FG$$";
|
||||
for (i=1;i<6;i++)
|
||||
if (org_octive==i)
|
||||
PrintF("$$BT-LE+LM-X+S,\"%d\",\"%d\"$$$$CM,3,0$$",i,i);
|
||||
else
|
||||
PrintF("$$BT-LE+LM-X,\"%d\",\"%d\"$$$$CM,3,0$$",i,i);
|
||||
cout "\r\n\r\n\r\n";
|
||||
cout " $$BT-LE+LM-X,\"Mode\",\"c\"$$$$CM,2,0$$";
|
||||
cout "$$BT-LE+LM-X\"File Menu\",\"v\"$$$$CM,2,0$$";
|
||||
cout "$$BT-LE+LM-X\"Random Song\",\",\"$$$$CM,2,0$$";
|
||||
cout "$$BT-LE+LM-X\"Clear Song\",\".\"$$$$CM,2,0$$";
|
||||
cout "$$BT-LE+LM-X,\"Exit\",\"\\x1B\"$$";
|
||||
cout "\r\n\r\n\r";
|
||||
}
|
||||
|
||||
#define ORGF_CANCEL 0
|
||||
#define ORGF_SAVE 1
|
||||
#define ORGF_CD 2
|
||||
#define ORGF_JUKEBOX 3
|
||||
#define ORGF_DELETE 4
|
||||
|
||||
I8 OrgPopUpFileMenu(I1 *dirname)
|
||||
{
|
||||
I8 i;
|
||||
Ltf *l=LtfNew;
|
||||
LtfPrintF(l,"%s\r\n\r\n",dirname);
|
||||
LtfPrintF(l,"$$MU,\"Load Song\" %d$$\r\n",ORGF_JUKEBOX);
|
||||
LtfPrintF(l,"$$MU,\"Save Song\" %d$$\r\n",ORGF_SAVE);
|
||||
LtfPrintF(l,"$$MU,\"Delete Song\" %d$$\r\n",ORGF_DELETE);
|
||||
LtfPrintF(l,"$$MU,\"Change Directory\" %d$$\r\n",ORGF_CD);
|
||||
LtfPrintF(l,"$$MU,\"CANCEL\" %d$$\r\n",ORGF_CANCEL);
|
||||
i=PopUpMenu(l);
|
||||
LtfDel(l);
|
||||
return i;
|
||||
}
|
||||
|
||||
void MusicOrgan(I1 *dirname=NULL)
|
||||
{
|
||||
OrgCtrl *oc=MAlloc(sizeof(OrgCtrl));
|
||||
BoolU4 is_note;
|
||||
U8 p1,p2,i,j,ch,sc,cmd=0,note_down_time;
|
||||
U8 note,octive,org_octive=3;
|
||||
double record_tempo=LTDATE_FREQ/2.5;
|
||||
double f=0,last_f=0,org_duration=1.0;
|
||||
I1 *buf,*filename=NULL;
|
||||
TssStruct *tss=Spawn(&OrgPlayTsk);
|
||||
OrgNote *tempo;
|
||||
BoolU4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
BoolU4 old_inhibit=ip_inhibit_win_operations;
|
||||
BoolU4 old_wordstat=WordStat(OFF);
|
||||
U8 old_user_data0=Fs->user_data0;
|
||||
U8 old_ltf_flags=Fs->cur_ltf->flags;
|
||||
BoolU4 old_border=WinBorder(OFF);
|
||||
|
||||
Fs->cur_ltf->flags|=LTFF_FORM;
|
||||
|
||||
oc->screen_x=0;
|
||||
oc->record_on=FALSE;
|
||||
oc->root.next=&oc->root;
|
||||
oc->root.last=&oc->root;
|
||||
oc->insert_point=NULL;
|
||||
oc->cur_note=NULL;
|
||||
|
||||
Fs->user_data0=oc;
|
||||
WinMax;
|
||||
|
||||
if (!dirname)
|
||||
dirname=NewStr("HOME/MusicOrgan");
|
||||
else
|
||||
dirname=NewStr(dirname);
|
||||
ip_inhibit_win_operations=TRUE;
|
||||
OrgHelp(org_octive);
|
||||
oc->old_update=Fs->update_win;
|
||||
Fs->update_win=&DrawIt;
|
||||
|
||||
try {
|
||||
do {
|
||||
start:
|
||||
if (ipty-Fs->win_top<13)
|
||||
cmd=GetMsg(&p1,&p2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP|1<<MSG_IP_L_DOWN|1<<MSG_IP_R_UP|
|
||||
1<<MSG_IP_MOVE);
|
||||
else
|
||||
cmd=GetMsg(&p1,&p2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP|1<<MSG_IP_MOVE);
|
||||
got_msg:
|
||||
if (cmd==MSG_KEY_DOWN && p1==CH_SPACE && !p2) {
|
||||
PutKey(p1,p2);
|
||||
goto start;
|
||||
}
|
||||
if (cmd!=MSG_IP_MOVE)
|
||||
LtfBottom(Fs->cur_ltf);
|
||||
octive=org_octive;
|
||||
if (cmd==MSG_KEY_DOWN) {
|
||||
ch=p1;
|
||||
sc=p2;
|
||||
if (ch>='0' && ch<='9') {
|
||||
org_octive=ch-'0';
|
||||
OrgHelp(org_octive);
|
||||
} else {
|
||||
is_note=TRUE;
|
||||
switch (ch) {
|
||||
case 0:
|
||||
if (sc.u1[0]==SC_CURSOR_LEFT) {
|
||||
oc->screen_x-=100;
|
||||
} else if (sc.u1[0]==SC_CURSOR_RIGHT) {
|
||||
oc->screen_x+=100;
|
||||
}
|
||||
is_note=FALSE;
|
||||
break;
|
||||
case 'a': note=7; octive--; break;
|
||||
case 's': note=8; octive--; break;
|
||||
case 'e': note=9; octive--; break;
|
||||
case 'd': note=10; octive--; break;
|
||||
case 'r': note=11; octive--; break;
|
||||
case 'f': note=0; break;
|
||||
case 't': note=1; break;
|
||||
case 'g': note=2; break;
|
||||
case 'h': note=3; break;
|
||||
case 'u': note=4; break;
|
||||
case 'j': note=5; break;
|
||||
case 'i': note=6; break;
|
||||
case 'k': note=7; break;
|
||||
case 'l': note=8; break;
|
||||
case 'p': note=9; break;
|
||||
case ';': note=10; break;
|
||||
case '[': note=11; break;
|
||||
case '\'': note=0; octive++; break;
|
||||
case ']': note=1; octive++; break;
|
||||
case '\r': note=2; octive++; break;
|
||||
case CH_SPACE:
|
||||
note=0;
|
||||
octive=0;
|
||||
break;
|
||||
case 'v':
|
||||
Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
ip_inhibit_win_operations=FALSE;
|
||||
switch (OrgPopUpFileMenu(dirname)) {
|
||||
case ORGF_SAVE:
|
||||
OrgSaveSong(dirname,filename);
|
||||
break;
|
||||
case ORGF_DELETE:
|
||||
OrgDelSong(filename);
|
||||
break;
|
||||
case ORGF_CD:
|
||||
Free(filename);
|
||||
filename=NULL;
|
||||
buf=dirname;
|
||||
if (dirname=PopUpPickDir)
|
||||
Free(buf);
|
||||
else
|
||||
dirname=buf;
|
||||
break;
|
||||
case ORGF_JUKEBOX:
|
||||
Free(filename);
|
||||
filename=NULL;
|
||||
JukeBox(dirname,&filename);
|
||||
if (filename) {
|
||||
oc->screen_x=0;
|
||||
org_duration=1.0;
|
||||
org_octive=3;
|
||||
OrgClearSong;
|
||||
OrgLoadSong(filename,&org_octive,&org_duration);
|
||||
oc->record_on=OFF;
|
||||
oc->insert_point=NULL;
|
||||
oc->cur_note=NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ip_inhibit_win_operations=TRUE;
|
||||
Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
is_note=FALSE;
|
||||
OrgHelp(org_octive);
|
||||
break;
|
||||
case ',':
|
||||
Free(filename);
|
||||
filename=NULL;
|
||||
Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
ip_inhibit_win_operations=FALSE;
|
||||
buf=MakeSong();
|
||||
if (!oc->insert_point) {
|
||||
oc->insert_point=&oc->root;
|
||||
oc->cur_note=oc->insert_point;
|
||||
}
|
||||
OrgLoadSongStr(buf,&org_octive,&org_duration);
|
||||
OrgLoadSongStr(buf,&org_octive,&org_duration);
|
||||
Free(buf);
|
||||
ip_inhibit_win_operations=TRUE;
|
||||
Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
is_note=FALSE;
|
||||
OrgHelp(org_octive);
|
||||
break;
|
||||
case '.':
|
||||
OrgHelp(org_octive);
|
||||
Free(filename);
|
||||
filename=NULL;
|
||||
org_duration=1.0;
|
||||
org_octive=3;
|
||||
OrgClearSong;
|
||||
oc->insert_point=NULL;
|
||||
oc->cur_note=NULL;
|
||||
oc->screen_x=0;
|
||||
is_note=FALSE;
|
||||
break;
|
||||
case '?':
|
||||
OrgHelp(org_octive);
|
||||
is_note=FALSE;
|
||||
break;
|
||||
case 'x':
|
||||
OrgHelp(org_octive);
|
||||
tempo=oc->root.next;
|
||||
while (tempo!=&oc->root) {
|
||||
if (ipty-Fs->win_top<13)
|
||||
cmd=ScanMsg(&p1,&p2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP|1<<MSG_IP_L_DOWN|1<<MSG_IP_R_UP);
|
||||
else
|
||||
cmd=ScanMsg(&p1,&p2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP);
|
||||
if (cmd) {
|
||||
f=0;
|
||||
org_play_f=0;
|
||||
is_note=FALSE;
|
||||
oc->cur_note=oc->insert_point;
|
||||
goto got_msg;
|
||||
}
|
||||
oc->cur_note=tempo;
|
||||
if (tempo->word)
|
||||
if (StrCmp(tempo->word," "))
|
||||
PutS(tempo->word);
|
||||
note=tempo->note;
|
||||
octive=tempo->octive;
|
||||
if (note || octive)
|
||||
f=Note2Freq(note,octive);
|
||||
else
|
||||
f=-1; //rest
|
||||
if (f>0)
|
||||
org_play_f=f;
|
||||
else
|
||||
org_play_f=0;
|
||||
Sleep(org_durations[tempo->duration]*record_tempo*1000.0/LTDATE_FREQ);
|
||||
org_play_f=0;
|
||||
Sleep(3);
|
||||
tempo=tempo->next;
|
||||
}
|
||||
oc->cur_note=oc->insert_point;
|
||||
f=0;
|
||||
org_play_f=0;
|
||||
is_note=FALSE;
|
||||
break;
|
||||
case CH_BACKSPACE:
|
||||
if (!oc->insert_point) {
|
||||
oc->insert_point=&oc->root;
|
||||
oc->cur_note=oc->insert_point;
|
||||
}
|
||||
tempo=oc->insert_point->last;
|
||||
if (tempo!=&oc->root) {
|
||||
PutChar(CH_BACKSPACE);
|
||||
RemQue(tempo);
|
||||
Free(tempo);
|
||||
}
|
||||
is_note=FALSE;
|
||||
break;
|
||||
case 'c':
|
||||
org_play_mode++;
|
||||
if (org_play_mode>=ORGPM_NUM_PLAY_MODES) org_play_mode=0;
|
||||
is_note=FALSE;
|
||||
OrgHelp(org_octive);
|
||||
coutln "Mode:",org_play_mode;
|
||||
break;
|
||||
case 'z':
|
||||
if (oc->record_on) {
|
||||
oc->record_on=FALSE;
|
||||
buf=OrgCvtSong;
|
||||
coutln buf;
|
||||
Free(buf);
|
||||
} else {
|
||||
coutln "\r\nCalibrate timing with 4 Quarter Notes";
|
||||
cmd=GetMsg(&ch,&sc,1<<MSG_KEY_DOWN);
|
||||
j=GetTimeStamp;
|
||||
for (i=0;i<3;i++) {
|
||||
PrintF("%d more\r\n",3-i);
|
||||
cmd=GetMsg(&ch,&sc,1<<MSG_KEY_DOWN);
|
||||
}
|
||||
record_tempo=(GetTimeStamp-j)/3.0;
|
||||
oc->record_on=TRUE;
|
||||
org_duration=1.0;
|
||||
org_octive=3;
|
||||
oc->screen_x=0;
|
||||
}
|
||||
is_note=FALSE;
|
||||
OrgHelp(org_octive);
|
||||
break;
|
||||
default:
|
||||
is_note=FALSE;
|
||||
}
|
||||
if (is_note) {
|
||||
if (note || octive)
|
||||
f=Note2Freq(note,octive);
|
||||
else
|
||||
f=-1; //rest
|
||||
}
|
||||
}
|
||||
} else if (cmd==MSG_KEY_UP)
|
||||
f=0;
|
||||
else if (cmd==MSG_IP_MOVE) {
|
||||
if (p2>13*FONT_HEIGHT) {
|
||||
Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
ip_inhibit_win_operations=FALSE;
|
||||
} else {
|
||||
Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK);
|
||||
ip_inhibit_win_operations=TRUE;
|
||||
}
|
||||
} else if (cmd==MSG_IP_L_DOWN)
|
||||
OrgLeftClick(p1,p2);
|
||||
else
|
||||
OrgRightClick(p1,p2);
|
||||
if (f!=last_f) {
|
||||
if (oc->record_on) {
|
||||
if (last_f) {
|
||||
tempo->duration=OrgCvtDuration((kbd_evt_time-note_down_time)/record_tempo);
|
||||
if (!oc->insert_point) {
|
||||
oc->insert_point=&oc->root;
|
||||
oc->cur_note=oc->insert_point;
|
||||
}
|
||||
InsQue(tempo,oc->insert_point->last);
|
||||
}
|
||||
if (f) {
|
||||
note_down_time=kbd_evt_time;
|
||||
tempo=MAllocZ(sizeof(OrgNote));
|
||||
tempo->note=note;
|
||||
tempo->octive=octive;
|
||||
}
|
||||
}
|
||||
if (f>0) {
|
||||
cout PointAtListEntry(note,org_note_list);
|
||||
org_play_f=f;
|
||||
} else {
|
||||
if (f<0)
|
||||
cout "R";
|
||||
org_play_f=0;
|
||||
}
|
||||
last_f=f;
|
||||
}
|
||||
} while (ch!=CH_ESC && ch!=CH_CTRLQ);
|
||||
} catch
|
||||
Fs->catch_except=TRUE;
|
||||
AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double);
|
||||
ip_inhibit_win_operations=old_inhibit;
|
||||
OrgClearSong;
|
||||
Kill(tss);
|
||||
Fs->update_win=oc->old_update;
|
||||
Fs->cur_ltf->flags=old_ltf_flags;
|
||||
Free(oc);
|
||||
Fs->user_data0=old_user_data0;
|
||||
Free(dirname);
|
||||
coutln "$$CL$$";
|
||||
WinBorder(old_border);
|
||||
WordStat(old_wordstat);
|
||||
}
|
||||
| ||||