mirror of
https://github.com/thestk/stk
synced 2026-01-16 14:21:53 +00:00
Version 4.1
This commit is contained in:
committed by
Stephen Sinclair
parent
81475b04c5
commit
2f09fcd019
0
projects/demo/Debug/.placeholder
Normal file
0
projects/demo/Debug/.placeholder
Normal file
@@ -1,73 +0,0 @@
|
||||
# STK Makefile - Global version for Unix systems which have GNU
|
||||
# Makefile utilities installed. If this Makefile does not work on
|
||||
# your system, try using the platform specific Makefiles (.sgi,
|
||||
# .next, and .linux).
|
||||
|
||||
OS = $(shell uname)
|
||||
|
||||
# The following definition indicates the relative location of
|
||||
# the STK src directory.
|
||||
STK_SRC = ../../src/
|
||||
|
||||
OBJECTS = Stk.o Envelope.o ADSR.o Noise.o WvIn.o WaveLoop.o WvOut.o \
|
||||
Filter.o OneZero.o OnePole.o PoleZero.o TwoZero.o \
|
||||
BiQuad.o Delay.o DelayL.o DelayA.o Reverb.o PRCRev.o \
|
||||
FormSwep.o ReedTabl.o JetTabl.o BowTabl.o \
|
||||
Instrmnt.o Clarinet.o BlowHole.o Saxofony.o Flute.o Brass.o BlowBotl.o \
|
||||
Bowed.o Plucked.o StifKarp.o Sitar.o PluckTwo.o Mandolin.o Mesh2D.o \
|
||||
FM.o Rhodey.o Wurley.o TubeBell.o HevyMetl.o PercFlut.o BeeThree.o FMVoices.o \
|
||||
Sampler.o Moog.o Simple.o Drummer.o BandedWG.o Shakers.o \
|
||||
Modal.o ModalBar.o Resonate.o \
|
||||
\
|
||||
Messager.o SKINI.o utilities.o
|
||||
|
||||
|
||||
RT_OBJECTS = RtMidi.o RtWvOut.o RtAudio.o Thread.o Socket.o
|
||||
|
||||
INCLUDE = -I../../include
|
||||
RM = /bin/rm
|
||||
|
||||
INSTR = demo
|
||||
|
||||
ifeq ($(OS),NEXTSTEP) # These are for NeXT
|
||||
# CC = cc -arch m68k -arch i386 -Wall -D__OS_NeXT_
|
||||
CC = g++ -bm68k-next-nextstep3 -bi386-next-nextstep3 -Wall -fhandle-exceptions
|
||||
endif
|
||||
|
||||
ifeq ($(OS),IRIX) # These are for SGI
|
||||
CC = CC -D__IRIX_AL__ # -g -fullwarn -D__SGI_CC__ -O2
|
||||
OBJECTS += $(RT_OBJECTS)
|
||||
LIBRARY = -laudio -lmd -lm -lpthread
|
||||
endif
|
||||
|
||||
ifeq ($(OS),Linux) # These are for Linux
|
||||
OBJECTS += $(RT_OBJECTS)
|
||||
CC = g++ -O3 -Wall -D__LITTLE_ENDIAN__ -D__LINUX_OSS__ #-g
|
||||
LIBRARY = -lpthread -lm #-lasound
|
||||
endif
|
||||
|
||||
%.o : $(STK_SRC)%.cpp
|
||||
$(CC) $(INCLUDE) -c $(<) -o $@
|
||||
|
||||
all: $(INSTR)
|
||||
|
||||
demo: demo.cpp $(OBJECTS)
|
||||
$(CC) $(INCLUDE) -o demo demo.cpp $(OBJECTS) $(LIBRARY)
|
||||
|
||||
Md2Skini: Md2Skini.cpp Stk.o RtMidi.o Thread.o Socket.o
|
||||
$(CC) -o Md2Skini Md2Skini.cpp Stk.o RtMidi.o Thread.o Socket.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
clean :
|
||||
rm *.o
|
||||
rm $(INSTR)
|
||||
|
||||
cleanIns :
|
||||
rm $(INSTR)
|
||||
|
||||
strip :
|
||||
strip $(INSTR)
|
||||
|
||||
# Project specific objects:
|
||||
|
||||
utilities.o: utilities.cpp
|
||||
$(CC) $(INCLUDE) -c utilities.cpp
|
||||
76
projects/demo/Makefile.in
Normal file
76
projects/demo/Makefile.in
Normal file
@@ -0,0 +1,76 @@
|
||||
### STK demo Makefile - for various flavors of unix
|
||||
|
||||
PROGRAMS = demo
|
||||
RM = /bin/rm
|
||||
SRC_PATH = ../../src
|
||||
OBJECT_PATH = @object_path@
|
||||
vpath %.o $(OBJECT_PATH)
|
||||
|
||||
OBJECTS = Stk.o Noise.o SubNoise.o Envelope.o ADSR.o \
|
||||
WvIn.o WaveLoop.o WvOut.o \
|
||||
Filter.o OneZero.o OnePole.o PoleZero.o TwoZero.o \
|
||||
BiQuad.o FormSwep.o Delay.o DelayL.o DelayA.o \
|
||||
ReedTabl.o JetTabl.o BowTabl.o \
|
||||
Reverb.o PRCRev.o \
|
||||
Modulate.o SingWave.o Voicer.o \
|
||||
Vector3D.o Sphere.o \
|
||||
\
|
||||
Instrmnt.o Clarinet.o BlowHole.o Saxofony.o Flute.o Brass.o BlowBotl.o \
|
||||
Bowed.o Plucked.o StifKarp.o Sitar.o PluckTwo.o Mandolin.o Mesh2D.o \
|
||||
FM.o Rhodey.o Wurley.o TubeBell.o HevyMetl.o PercFlut.o BeeThree.o FMVoices.o \
|
||||
Sampler.o Moog.o Simple.o Drummer.o Shakers.o \
|
||||
Modal.o ModalBar.o BandedWG.o Resonate.o VoicForm.o Phonemes.o Whistle.o \
|
||||
\
|
||||
Messager.o SKINI.o utilities.o
|
||||
|
||||
INCLUDE = @include@
|
||||
ifeq ($(strip $(INCLUDE)), )
|
||||
INCLUDE = ../../include
|
||||
endif
|
||||
vpath %.h $(INCLUDE)
|
||||
|
||||
CC = @CXX@
|
||||
DEFS = @byte_order@
|
||||
DEFS += @debug@
|
||||
CFLAGS = @cflags@
|
||||
CFLAGS += @warn@ -I$(INCLUDE)
|
||||
LIBRARY = @LIBS@
|
||||
LIBRARY += @frameworks@
|
||||
|
||||
REALTIME = @realtime@
|
||||
ifeq ($(REALTIME),yes)
|
||||
OBJECTS += RtMidi.o RtAudio.o RtWvOut.o Thread.o Socket.o
|
||||
DEFS += @sound_api@
|
||||
DEFS += @midiator@
|
||||
endif
|
||||
|
||||
RAWWAVES = @rawwaves@
|
||||
ifeq ($(strip $(RAWWAVES)), )
|
||||
RAWWAVES = ../../rawwaves/
|
||||
endif
|
||||
DEFS += -DRAWWAVE_PATH=\"$(RAWWAVES)\"
|
||||
|
||||
%.o : $(SRC_PATH)/%.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@
|
||||
|
||||
all : $(PROGRAMS)
|
||||
|
||||
demo: demo.cpp $(OBJECTS)
|
||||
$(CC) $(CFLAGS) $(DEFS) -o demo demo.cpp $(OBJECT_PATH)/*.o $(LIBRARY)
|
||||
|
||||
Md2Skini: Md2Skini.cpp Stk.o RtMidi.o Thread.o Socket.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o Md2Skini Md2Skini.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/RtMidi.o $(OBJECT_PATH)/Thread.o $(OBJECT_PATH)/Socket.o $(LIBRARY)
|
||||
|
||||
$(OBJECTS) : Stk.h
|
||||
|
||||
clean :
|
||||
-rm $(OBJECT_PATH)/*.o
|
||||
-rm $(PROGRAMS)
|
||||
|
||||
strip :
|
||||
strip $(PROGRAMS)
|
||||
|
||||
# Project specific objects:
|
||||
|
||||
utilities.o: utilities.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c utilities.cpp -o $(OBJECT_PATH)/$@
|
||||
@@ -1,309 +1,309 @@
|
||||
/***************************************************/
|
||||
/*
|
||||
Simple realtime MIDI to SKINI parser.
|
||||
|
||||
This object takes MIDI from the input stream
|
||||
(via the RtMidi class), parses it, and turns it
|
||||
into SKINI messages.
|
||||
|
||||
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
|
||||
*/
|
||||
/***************************************************/
|
||||
|
||||
#include "RtMidi.h"
|
||||
#include "Thread.h"
|
||||
#include "Socket.h"
|
||||
#include "SKINI.msg"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
// Exit thread declaration.
|
||||
extern "C" THREAD_RETURN THREAD_TYPE stdinMonitor(void * ptr);
|
||||
|
||||
void usage(void) {
|
||||
printf("\nuseage: Md2Skini <flag(s)>\n\n");
|
||||
printf(" With no arguments, Md2Skini converts MIDI input to SKINI\n");
|
||||
printf(" format and sends the output directly to stdout.\n");
|
||||
printf(" With flag = -s <hostname>, the output is sent over a socket\n");
|
||||
printf(" connection (port 2001) to the optional hostname (default = localhost).\n");
|
||||
printf(" With flag = -f <filename>, the output stream is simultaneously\n");
|
||||
printf(" written to the file specified by the optional <filename>\n");
|
||||
printf(" (default = test.ski).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
bool done = false, firstMessage = true, writeFile = false, useSocket = false;
|
||||
FILE *file = NULL;
|
||||
char fileName[256];
|
||||
char hostName[128];
|
||||
RtMidi *rtmidi = 0;
|
||||
Socket *soket = 0;
|
||||
Thread *thread = 0;
|
||||
|
||||
if ( argc>5 ) {
|
||||
usage();
|
||||
}
|
||||
|
||||
// Parse the command-line arguments.
|
||||
int i = 1;
|
||||
while (i < argc) {
|
||||
if (argv[i][0] == '-') {
|
||||
switch(argv[i][1]) {
|
||||
|
||||
case 's':
|
||||
if ((i+1 < argc) && argv[i+1][0] != '-') {
|
||||
i++;
|
||||
strncpy(hostName, argv[i], 128);
|
||||
}
|
||||
else strcpy(hostName, "localhost");
|
||||
useSocket = true;
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
if ((i+1 < argc) && argv[i+1][0] != '-') {
|
||||
i++;
|
||||
strncpy(fileName, argv[i], 252);
|
||||
if ( strstr(fileName,".ski") == NULL ) strcat(fileName, ".ski");
|
||||
}
|
||||
else strcpy(fileName, "test.ski");
|
||||
file = fopen(fileName,"wb");
|
||||
writeFile = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else usage();
|
||||
i++;
|
||||
}
|
||||
|
||||
MY_FLOAT dt=0.0;
|
||||
try {
|
||||
rtmidi = new RtMidi();
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// If using sockets, setup the client socket
|
||||
if (useSocket) {
|
||||
try {
|
||||
soket = new Socket( 2001, hostName );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Start the "exit" thread.
|
||||
thread = new Thread();
|
||||
if ( !thread->start( (THREAD_FUNCTION)&stdinMonitor, (void *) &done ) ) {
|
||||
fprintf(stderr, "Unable to create exit thread ... aborting.\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Write SKINI messages to buffer 's'. This is the easiest way to
|
||||
// allow this single executable to work for both socketing and
|
||||
// printf's to stdout.
|
||||
char s[128];
|
||||
int channel, j;
|
||||
MY_FLOAT byte2, byte3;
|
||||
while ( !done ) {
|
||||
if (rtmidi->nextMessage() > 0) {
|
||||
byte3 = rtmidi->getByteThree();
|
||||
byte2 = rtmidi->getByteTwo();
|
||||
channel = rtmidi->getChannel();
|
||||
if (writeFile) dt = rtmidi->getDeltaTime();
|
||||
if (firstMessage) { // first MIDI message time stamp is meaningless
|
||||
dt = 0.0;
|
||||
firstMessage = false;
|
||||
}
|
||||
|
||||
switch(rtmidi->getType()) {
|
||||
case __SK_NoteOn_:
|
||||
if (byte3 < 1.0) {
|
||||
sprintf(s,"NoteOff\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,64.0);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOff\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,64.0);
|
||||
}
|
||||
} else {
|
||||
sprintf(s,"NoteOn\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOn\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_NoteOff_:
|
||||
if (byte3 < 2.0) byte3 = 64.0;
|
||||
sprintf(s,"NoteOff\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOff\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_PolyPressure_:
|
||||
sprintf(s,"PolyPressure\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"PolyPressure\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ControlChange_:
|
||||
j = (int) byte2;
|
||||
switch(j) {
|
||||
case __SK_Volume_:
|
||||
sprintf(s,"Volume\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Volume\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_ModWheel_:
|
||||
sprintf(s,"ModWheel\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ModWheel\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Breath_:
|
||||
sprintf(s,"Breath\t\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Breath\t\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_FootControl_:
|
||||
sprintf(s,"FootControl\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"FootControl\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Portamento_:
|
||||
sprintf(s,"Portamento\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Portamento\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Balance_:
|
||||
sprintf(s,"Balance\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Balance\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Pan_:
|
||||
sprintf(s,"Pan\t\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Pan\t\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Sustain_:
|
||||
sprintf(s,"Sustain\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Sustain\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Expression_:
|
||||
sprintf(s,"Expression\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Expression\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sprintf(s,"ControlChange\t%.3f %d %d %.1f\n",0.0,channel,j,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ControlChange\t%.3f %d %d %.1f\n",dt,channel,j,byte3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ProgramChange_:
|
||||
j = (int) byte2;
|
||||
sprintf(s,"ProgramChange\t%.3f %d %d\n",0.0,channel,j);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ProgramChange\t%.3f %d %d\n",dt,channel,j);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ChannelPressure_:
|
||||
sprintf(s,"ChannelPressure\t%.3f %d %.1f\n",0.0,channel,byte2);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ChannelPressure\t%.3f %d %.1f\n",dt,channel,byte2);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_PitchBend_:
|
||||
sprintf(s,"PitchBend\t%.3f %d %f\n",0.0,channel,byte2);
|
||||
if (writeFile) {
|
||||
fprintf(file,"PitchBend\t%.3f %d %f\n",dt,channel,byte2);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
sprintf(s,"// Unknown\t%.3f %d %f %f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"// Unknown\t\t%.3f %d %f %f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (useSocket) {
|
||||
if ( soket->writeBuffer( s, strlen(s), 0 ) < 0 ) {
|
||||
fprintf(stderr,"Socket connection failed ... aborting.\n");
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("%s", s);
|
||||
fflush(stdout);
|
||||
}
|
||||
memset(s, 0, sizeof(s));
|
||||
} else {
|
||||
// Sleep for 10 milliseconds
|
||||
Stk::sleep( 10 );
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(s, "Exiting Md2Skini process ... bye!\n");
|
||||
if (useSocket)
|
||||
soket->writeBuffer( s, strlen(s), 0 );
|
||||
else {
|
||||
printf("%s", s);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if (writeFile) {
|
||||
printf("Wrote SKINI output to file %s.\n", fileName);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
done = true;
|
||||
delete rtmidi;
|
||||
delete soket;
|
||||
delete thread;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
THREAD_RETURN THREAD_TYPE stdinMonitor(void * ptr)
|
||||
{
|
||||
bool *done = (bool *) ptr;
|
||||
char inputString[128];
|
||||
printf("Type 'Exit<cr>' to quit.\n");
|
||||
while ( !*done ) {
|
||||
fgets(inputString, 128, stdin);
|
||||
if (inputString[3] == 't' && inputString[1] == 'x'
|
||||
&& inputString[2] == 'i' && inputString[0] == 'E') {
|
||||
*done = true;
|
||||
}
|
||||
else {
|
||||
printf(inputString);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/***************************************************/
|
||||
/*
|
||||
Simple realtime MIDI to SKINI parser.
|
||||
|
||||
This object takes MIDI from the input stream
|
||||
(via the RtMidi class), parses it, and turns it
|
||||
into SKINI messages.
|
||||
|
||||
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
|
||||
*/
|
||||
/***************************************************/
|
||||
|
||||
#include "RtMidi.h"
|
||||
#include "Thread.h"
|
||||
#include "Socket.h"
|
||||
#include "SKINI.msg"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
// Exit thread declaration.
|
||||
extern "C" THREAD_RETURN THREAD_TYPE stdinMonitor(void * ptr);
|
||||
|
||||
void usage(void) {
|
||||
printf("\nuseage: Md2Skini <flag(s)>\n\n");
|
||||
printf(" With no arguments, Md2Skini converts MIDI input to SKINI\n");
|
||||
printf(" format and sends the output directly to stdout.\n");
|
||||
printf(" With flag = -s <hostname>, the output is sent over a socket\n");
|
||||
printf(" connection (port 2001) to the optional hostname (default = localhost).\n");
|
||||
printf(" With flag = -f <filename>, the output stream is simultaneously\n");
|
||||
printf(" written to the file specified by the optional <filename>\n");
|
||||
printf(" (default = test.ski).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
bool done = false, firstMessage = true, writeFile = false, useSocket = false;
|
||||
FILE *file = NULL;
|
||||
char fileName[256];
|
||||
char hostName[128];
|
||||
RtMidi *rtmidi = 0;
|
||||
Socket *soket = 0;
|
||||
Thread *thread = 0;
|
||||
|
||||
if ( argc>5 ) {
|
||||
usage();
|
||||
}
|
||||
|
||||
// Parse the command-line arguments.
|
||||
int i = 1;
|
||||
while (i < argc) {
|
||||
if (argv[i][0] == '-') {
|
||||
switch(argv[i][1]) {
|
||||
|
||||
case 's':
|
||||
if ((i+1 < argc) && argv[i+1][0] != '-') {
|
||||
i++;
|
||||
strncpy(hostName, argv[i], 128);
|
||||
}
|
||||
else strcpy(hostName, "localhost");
|
||||
useSocket = true;
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
if ((i+1 < argc) && argv[i+1][0] != '-') {
|
||||
i++;
|
||||
strncpy(fileName, argv[i], 252);
|
||||
if ( strstr(fileName,".ski") == NULL ) strcat(fileName, ".ski");
|
||||
}
|
||||
else strcpy(fileName, "test.ski");
|
||||
file = fopen(fileName,"wb");
|
||||
writeFile = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else usage();
|
||||
i++;
|
||||
}
|
||||
|
||||
MY_FLOAT dt=0.0;
|
||||
try {
|
||||
rtmidi = new RtMidi();
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// If using sockets, setup the client socket
|
||||
if (useSocket) {
|
||||
try {
|
||||
soket = new Socket( 2001, hostName );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Start the "exit" thread.
|
||||
thread = new Thread();
|
||||
if ( !thread->start( (THREAD_FUNCTION)&stdinMonitor, (void *) &done ) ) {
|
||||
fprintf(stderr, "Unable to create exit thread ... aborting.\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Write SKINI messages to buffer 's'. This is the easiest way to
|
||||
// allow this single executable to work for both socketing and
|
||||
// printf's to stdout.
|
||||
char s[128];
|
||||
int channel, j;
|
||||
MY_FLOAT byte2, byte3;
|
||||
while ( !done ) {
|
||||
if (rtmidi->nextMessage() > 0) {
|
||||
byte3 = rtmidi->getByteThree();
|
||||
byte2 = rtmidi->getByteTwo();
|
||||
channel = rtmidi->getChannel();
|
||||
if (writeFile) dt = rtmidi->getDeltaTime();
|
||||
if (firstMessage) { // first MIDI message time stamp is meaningless
|
||||
dt = 0.0;
|
||||
firstMessage = false;
|
||||
}
|
||||
|
||||
switch(rtmidi->getType()) {
|
||||
case __SK_NoteOn_:
|
||||
if (byte3 < 1.0) {
|
||||
sprintf(s,"NoteOff\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,64.0);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOff\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,64.0);
|
||||
}
|
||||
} else {
|
||||
sprintf(s,"NoteOn\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOn\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_NoteOff_:
|
||||
if (byte3 < 2.0) byte3 = 64.0;
|
||||
sprintf(s,"NoteOff\t\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"NoteOff\t\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_PolyPressure_:
|
||||
sprintf(s,"PolyPressure\t%.3f %d %.1f %.1f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"PolyPressure\t%.3f %d %.1f %.1f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ControlChange_:
|
||||
j = (int) byte2;
|
||||
switch(j) {
|
||||
case __SK_Volume_:
|
||||
sprintf(s,"Volume\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Volume\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_ModWheel_:
|
||||
sprintf(s,"ModWheel\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ModWheel\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Breath_:
|
||||
sprintf(s,"Breath\t\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Breath\t\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_FootControl_:
|
||||
sprintf(s,"FootControl\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"FootControl\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Portamento_:
|
||||
sprintf(s,"Portamento\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Portamento\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Balance_:
|
||||
sprintf(s,"Balance\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Balance\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Pan_:
|
||||
sprintf(s,"Pan\t\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Pan\t\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Sustain_:
|
||||
sprintf(s,"Sustain\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Sustain\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
case __SK_Expression_:
|
||||
sprintf(s,"Expression\t%.3f %d %.1f\n",0.0,channel,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"Expression\t%.3f %d %.1f\n",dt,channel,byte3);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sprintf(s,"ControlChange\t%.3f %d %d %.1f\n",0.0,channel,j,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ControlChange\t%.3f %d %d %.1f\n",dt,channel,j,byte3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ProgramChange_:
|
||||
j = (int) byte2;
|
||||
sprintf(s,"ProgramChange\t%.3f %d %d\n",0.0,channel,j);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ProgramChange\t%.3f %d %d\n",dt,channel,j);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_ChannelPressure_:
|
||||
sprintf(s,"ChannelPressure\t%.3f %d %.1f\n",0.0,channel,byte2);
|
||||
if (writeFile) {
|
||||
fprintf(file,"ChannelPressure\t%.3f %d %.1f\n",dt,channel,byte2);
|
||||
}
|
||||
break;
|
||||
|
||||
case __SK_PitchBend_:
|
||||
sprintf(s,"PitchBend\t%.3f %d %f\n",0.0,channel,byte2);
|
||||
if (writeFile) {
|
||||
fprintf(file,"PitchBend\t%.3f %d %f\n",dt,channel,byte2);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
sprintf(s,"// Unknown\t%.3f %d %f %f\n",0.0,channel,byte2,byte3);
|
||||
if (writeFile) {
|
||||
fprintf(file,"// Unknown\t\t%.3f %d %f %f\n",dt,channel,byte2,byte3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (useSocket) {
|
||||
if ( soket->writeBuffer( s, strlen(s), 0 ) < 0 ) {
|
||||
fprintf(stderr,"Socket connection failed ... aborting.\n");
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("%s", s);
|
||||
fflush(stdout);
|
||||
}
|
||||
memset(s, 0, sizeof(s));
|
||||
} else {
|
||||
// Sleep for 10 milliseconds
|
||||
Stk::sleep( 10 );
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(s, "Exiting Md2Skini process ... bye!\n");
|
||||
if (useSocket)
|
||||
soket->writeBuffer( s, strlen(s), 0 );
|
||||
else {
|
||||
printf("%s", s);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if (writeFile) {
|
||||
printf("Wrote SKINI output to file %s.\n", fileName);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
done = true;
|
||||
delete rtmidi;
|
||||
delete soket;
|
||||
delete thread;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
THREAD_RETURN THREAD_TYPE stdinMonitor(void * ptr)
|
||||
{
|
||||
bool *done = (bool *) ptr;
|
||||
char inputString[128];
|
||||
printf("Type 'Exit<cr>' to quit.\n");
|
||||
while ( !*done ) {
|
||||
fgets(inputString, 128, stdin);
|
||||
if (inputString[3] == 't' && inputString[1] == 'x'
|
||||
&& inputString[2] == 'i' && inputString[0] == 'E') {
|
||||
*done = true;
|
||||
}
|
||||
else {
|
||||
printf(inputString);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
0
projects/demo/Release/.placeholder
Normal file
0
projects/demo/Release/.placeholder
Normal file
1
projects/demo/Voice.bat
Executable file
1
projects/demo/Voice.bat
Executable file
@@ -0,0 +1 @@
|
||||
wish < tcl/Voice.tcl | demo FMVoices -or -ip
|
||||
@@ -1,33 +1,38 @@
|
||||
// demo.cpp
|
||||
//
|
||||
// An STK program for monophonic voice playback and control.
|
||||
// An example STK program for voice playback and control.
|
||||
|
||||
#include "SKINI.msg"
|
||||
#include "Messager.h"
|
||||
#include "WvOut.h"
|
||||
#include "Instrmnt.h"
|
||||
#include "PRCRev.h"
|
||||
#include "Voicer.h"
|
||||
|
||||
// Miscellaneous command-line parsing and instrument allocation
|
||||
// functions are defined in utilites.cpp ... specific to this program.
|
||||
#include "utilities.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <math.h>
|
||||
#include <iostream.h>
|
||||
|
||||
bool done;
|
||||
static void finish(int ignore){ done = true; }
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
bool done;
|
||||
Instrmnt *instrument = 0;
|
||||
Messager *messager = 0;
|
||||
Instrmnt **instrument = 0;
|
||||
WvOut **output = 0;
|
||||
Messager *messager = 0;
|
||||
Reverb *reverb = 0;
|
||||
MY_FLOAT pitch = 220.0;
|
||||
Voicer *voicer = 0;
|
||||
int i, nVoices = 1;
|
||||
MY_FLOAT t60 = 1.0; // in seconds
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects!!
|
||||
// it before instantiating any objects! If the sample rate is
|
||||
// specified in the command line, it will override this setting.
|
||||
Stk::setSampleRate( 22050.0 );
|
||||
|
||||
// Check the command-line arguments for errors and to determine
|
||||
@@ -35,15 +40,28 @@ int main(int argc, char *argv[])
|
||||
int nOutputs = checkArgs(argc, argv);
|
||||
output = (WvOut **) calloc(nOutputs, sizeof(WvOut *));
|
||||
|
||||
// Instantiate the instrument from the command-line argument.
|
||||
int voice = voiceByName(argv[1], &instrument);
|
||||
if ( voice < 0 ) usage(argv[0]);
|
||||
// Instantiate the instrument(s) type from the command-line argument
|
||||
// (in utilities.cpp).
|
||||
nVoices = countVoices(argc, argv);
|
||||
instrument = (Instrmnt **) calloc(nVoices, sizeof(Instrmnt *));
|
||||
int voice = voiceByName(argv[1], &instrument[0]);
|
||||
if ( voice < 0 ) {
|
||||
free( output );
|
||||
free( instrument );
|
||||
usage(argv[0]);
|
||||
}
|
||||
// If there was no error allocating the first voice, we should be fine for more.
|
||||
for ( i=1; i<nVoices; i++ )
|
||||
voiceByName(argv[1], &instrument[i]);
|
||||
|
||||
// Parse the command-line flags, instantiate WvOut objects, and instantiate
|
||||
// the input message controller (in utilities.cpp).
|
||||
voicer = (Voicer *) new Voicer(nVoices);
|
||||
for ( i=0; i<nVoices; i++ )
|
||||
voicer->addInstrument( instrument[i] );
|
||||
|
||||
// Parse the command-line flags, instantiate WvOut objects, and
|
||||
// instantiate the input message controller (in utilities.cpp).
|
||||
try {
|
||||
int controlMask = parseArgs(argc, argv, output);
|
||||
messager = new Messager( controlMask );
|
||||
parseArgs(argc, argv, output, &messager);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
@@ -52,10 +70,13 @@ int main(int argc, char *argv[])
|
||||
reverb = new PRCRev( t60 );
|
||||
reverb->setEffectMix(0.2);
|
||||
|
||||
// Install an interrupt handler function.
|
||||
(void) signal(SIGINT, finish);
|
||||
|
||||
// The runtime loop begins here:
|
||||
done = FALSE;
|
||||
int nTicks, type, j, i;
|
||||
MY_FLOAT temp, byte2, byte3, sample;
|
||||
int nTicks, type, j;
|
||||
MY_FLOAT byte2, byte3, sample;
|
||||
while (!done) {
|
||||
|
||||
// Look for new messages and return a delta time (in samples).
|
||||
@@ -64,9 +85,8 @@ int main(int argc, char *argv[])
|
||||
done = TRUE;
|
||||
|
||||
nTicks = messager->getDelta();
|
||||
|
||||
for ( i=0; i<nTicks; i++ ) {
|
||||
sample = reverb->tick( instrument->tick() );
|
||||
sample = reverb->tick( voicer->tick() );
|
||||
for ( j=0; j<nOutputs; j++ ) output[j]->tick(sample);
|
||||
}
|
||||
|
||||
@@ -79,51 +99,50 @@ int main(int argc, char *argv[])
|
||||
|
||||
case __SK_NoteOn_:
|
||||
if (byte3 == 0.0) // velocity is zero ... really a NoteOff
|
||||
instrument->noteOff( 0.5 );
|
||||
else { // a NoteOn
|
||||
if ( byte2 < 0.0 || byte2 > 128.0 ) continue;
|
||||
pitch = Midi2Pitch[(unsigned int) byte2];
|
||||
instrument->noteOn(pitch, byte3 * ONE_OVER_128);
|
||||
}
|
||||
voicer->noteOff( byte2, 64.0 );
|
||||
else // a NoteOn
|
||||
voicer->noteOn( byte2, byte3 );
|
||||
break;
|
||||
|
||||
case __SK_NoteOff_:
|
||||
instrument->noteOff(byte3 * ONE_OVER_128);
|
||||
voicer->noteOff( byte2, byte3 );
|
||||
break;
|
||||
|
||||
case __SK_ControlChange_:
|
||||
if (byte2 == 44.0)
|
||||
reverb->setEffectMix(byte3 * ONE_OVER_128);
|
||||
else
|
||||
instrument->controlChange( (int)byte2, byte3 );
|
||||
voicer->controlChange( (int) byte2, byte3 );
|
||||
break;
|
||||
|
||||
case __SK_AfterTouch_:
|
||||
instrument->controlChange( 128, byte2 );
|
||||
voicer->controlChange( 128, byte2 );
|
||||
break;
|
||||
|
||||
case __SK_PitchChange_:
|
||||
voicer->setFrequency( byte2 );
|
||||
break;
|
||||
|
||||
case __SK_PitchBend_:
|
||||
if ( byte2 < 0.0 || byte2 > 128.0 ) continue;
|
||||
temp = byte2 - (int)byte2; // floating-point remainder
|
||||
pitch = Midi2Pitch[(unsigned int)byte2] * pow(2.0, temp/12.0);
|
||||
instrument->setFrequency(pitch);
|
||||
voicer->pitchBend( byte2 );
|
||||
break;
|
||||
|
||||
case __SK_ProgramChange_:
|
||||
if (voice != (int)byte2) {
|
||||
instrument->noteOff(1.0);
|
||||
// Let the instrument settle a bit.
|
||||
for (i=0; i<4096; i++) {
|
||||
sample = reverb->tick( instrument->tick() );
|
||||
if ( voice != (int) byte2 ) {
|
||||
voicer->silence();
|
||||
// Let the instrument(s) settle a bit.
|
||||
for ( i=0; i<4096; i++ ) {
|
||||
sample = reverb->tick( voicer->tick() );
|
||||
for ( j=0; j<nOutputs; j++ ) output[j]->tick(sample);
|
||||
}
|
||||
delete instrument;
|
||||
voice = voiceByNumber( (int)byte2, &instrument );
|
||||
if ( voice < 0 ) {
|
||||
// Default instrument = 0
|
||||
voice = voiceByNumber( 0, &instrument );
|
||||
for ( i=0; i<nVoices; i++ ) {
|
||||
voicer->removeInstrument( instrument[i] );
|
||||
delete instrument[i];
|
||||
voice = voiceByNumber( (int)byte2, &instrument[i] );
|
||||
if ( voice < 0 )
|
||||
voice = voiceByNumber( 0, &instrument[i] );
|
||||
voicer->addInstrument( instrument[i] );
|
||||
}
|
||||
instrument->noteOn(pitch, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,7 +151,7 @@ int main(int argc, char *argv[])
|
||||
// Let the reverb settle a bit.
|
||||
nTicks = (long) (t60 * Stk::sampleRate());
|
||||
for ( i=0; i<nTicks; i++) {
|
||||
sample = reverb->tick( instrument->tick() );
|
||||
sample = reverb->tick( voicer->tick() );
|
||||
for ( j=0; j<nOutputs; j++ ) output[j]->tick(sample);
|
||||
}
|
||||
|
||||
@@ -142,8 +161,14 @@ int main(int argc, char *argv[])
|
||||
free(output);
|
||||
|
||||
delete messager;
|
||||
delete instrument;
|
||||
delete reverb;
|
||||
delete voicer;
|
||||
|
||||
cout << "\ndemo finished ... goodbye.\n" << endl;
|
||||
for ( i=0; i<nVoices; i++ ) delete instrument[i];
|
||||
free(instrument);
|
||||
|
||||
cout << "\nStk demo finished ... goodbye.\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -207,6 +207,10 @@ SOURCE=..\..\src\ModalBar.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Modulate.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Moog.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -231,6 +235,10 @@ SOURCE=..\..\src\PercFlut.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Phonemes.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Plucked.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -299,6 +307,10 @@ SOURCE=..\..\src\Simple.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\SingWave.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Sitar.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -311,6 +323,10 @@ SOURCE=..\..\src\Socket.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Sphere.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\StifKarp.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -319,6 +335,10 @@ SOURCE=..\..\src\Stk.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\SubNoise.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Thread.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -339,10 +359,26 @@ SOURCE=.\utilities.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Vector3D.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Voicer.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\VoicForm.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\WaveLoop.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Whistle.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\Wurley.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -475,6 +511,10 @@ SOURCE=..\..\include\ModalBar.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Modulate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Moog.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -499,6 +539,10 @@ SOURCE=..\..\include\PercFlut.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Phonemes.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Plucked.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -567,6 +611,10 @@ SOURCE=..\..\include\Simple.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\SingWave.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Sitar.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -579,6 +627,10 @@ SOURCE=..\..\include\Socket.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Sphere.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\StifKarp.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -611,10 +663,22 @@ SOURCE=.\utilities.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Vector3D.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Voicer.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\WaveLoop.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Whistle.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\Wurley.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
Suggested Score/Instrument Pairings:
|
||||
|
||||
BeeThree bookert.ski, organs.ski
|
||||
Rhodey doogie.ski
|
||||
Mandolin duelingb.ski
|
||||
Bowed fiddle.ski
|
||||
PercFlut misacrio.ski
|
||||
AgogoBel morazbel.ski
|
||||
Brass pictures.ski
|
||||
Wurley nriderson.ski
|
||||
Flute simplgft.ski
|
||||
Clarinet simplgft.ski
|
||||
Marimba spain.ski
|
||||
Vibraphn spain.ski
|
||||
HeavyMtl streetsf.ski
|
||||
Moog1 thecars.ski
|
||||
TubeBell tubebell.ski
|
||||
|
||||
FMVoices lacrymos.ski, vocaliz.ski
|
||||
VoicForm lacrymos.ski, vocaliz.ski
|
||||
Suggested Score/Instrument Pairings:
|
||||
|
||||
BeeThree bookert.ski, organs.ski
|
||||
Rhodey doogie.ski
|
||||
Mandolin duelingb.ski
|
||||
Bowed fiddle.ski
|
||||
PercFlut misacrio.ski
|
||||
AgogoBel morazbel.ski
|
||||
Brass pictures.ski
|
||||
Wurley nriderson.ski
|
||||
Flute simplgft.ski
|
||||
Clarinet simplgft.ski
|
||||
Marimba spain.ski
|
||||
Vibraphn spain.ski
|
||||
HeavyMtl streetsf.ski
|
||||
Moog1 thecars.ski
|
||||
TubeBell tubebell.ski
|
||||
|
||||
FMVoices lacrymos.ski, vocaliz.ski
|
||||
VoicForm lacrymos.ski, vocaliz.ski
|
||||
1601
projects/demo/scores/bachfugue.ski
Normal file
1601
projects/demo/scores/bachfugue.ski
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,90 +1,90 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.380000 1 60 63.500000
|
||||
NoteOn 0.020000 1 60 101.600002
|
||||
NoteOff 0.100000 1 60 63.500000
|
||||
NoteOn 0.100000 1 48 63.500000
|
||||
NoteOff 0.200000 1 48 63.500000
|
||||
NoteOn 0.200000 1 48 88.899998
|
||||
NoteOff 0.190023 1 48 63.500000
|
||||
NoteOn 0.010023 1 51 101.600002
|
||||
NoteOff 0.570023 1 51 63.500000
|
||||
NoteOn 0.030023 1 53 88.899998
|
||||
NoteOff 0.570023 1 53 63.500000
|
||||
NoteOn 0.030023 1 48 38.100002
|
||||
NoteOff 0.300000 1 48 63.500000
|
||||
NoteOn 0.300000 1 67 101.600002
|
||||
NoteOff 0.570023 1 67 63.500000
|
||||
NoteOn 0.030023 1 66 76.200003
|
||||
NoteOff 0.190023 1 66 63.500000
|
||||
NoteOn 0.010023 1 65 63.500000
|
||||
NoteOff 0.190023 1 65 63.500000
|
||||
NoteOn 0.010023 1 63 50.800001
|
||||
NoteOff 0.190023 1 63 63.500000
|
||||
NoteOn 0.010023 1 60 76.200003
|
||||
NoteOff 0.380000 1 60 63.500000
|
||||
NoteOn 0.020000 1 58 50.800001
|
||||
NoteOff 0.190023 1 58 63.500000
|
||||
NoteOn 0.010023 1 48 114.299997
|
||||
NoteOff 0.380000 1 48 63.500000
|
||||
NoteOn 0.020000 1 48 101.600002
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 36 63.500000
|
||||
NoteOff 0.200000 1 36 63.500000
|
||||
NoteOn 0.200000 1 36 88.899998
|
||||
NoteOff 0.190023 1 36 63.500000
|
||||
NoteOn 0.010023 1 39 101.600002
|
||||
NoteOff 0.570023 1 39 63.500000
|
||||
NoteOn 0.030023 1 41 88.899998
|
||||
NoteOff 0.570023 1 41 63.500000
|
||||
NoteOn 0.030023 1 84 127.000000
|
||||
NoteOff 0.475011 1 84 63.500000
|
||||
NoteOn 0.025034 1 83 120.649998
|
||||
NoteOff 0.066531 1 83 63.500000
|
||||
NoteOn 0.003537 1 82 114.299997
|
||||
NoteOff 0.057007 1 82 63.500000
|
||||
NoteOn 0.003039 1 81 107.950003
|
||||
NoteOff 0.047528 1 81 63.500000
|
||||
NoteOn 0.002540 1 80 101.600002
|
||||
NoteOff 0.047528 1 80 63.500000
|
||||
NoteOn 0.002540 1 78 95.250000
|
||||
NoteOff 0.038005 1 78 63.500000
|
||||
NoteOn 0.002041 1 78 88.899998
|
||||
NoteOff 0.028526 1 78 63.500000
|
||||
NoteOn 0.001542 1 77 82.549997
|
||||
NoteOff 0.019002 1 77 63.500000
|
||||
NoteOn 0.001043 1 76 76.200003
|
||||
NoteOff 0.019002 1 76 63.500000
|
||||
NoteOn 0.001043 1 75 69.850002
|
||||
NoteOff 0.019002 1 75 63.500000
|
||||
NoteOn 0.001043 1 74 63.500000
|
||||
NoteOff 0.019002 1 74 63.500000
|
||||
NoteOn 0.001043 1 73 63.500000
|
||||
NoteOff 0.028526 1 73 63.500000
|
||||
NoteOn 0.001542 1 72 63.500000
|
||||
NoteOff 0.019002 1 72 63.500000
|
||||
NoteOn 0.001043 1 71 57.149998
|
||||
NoteOff 0.028526 1 71 63.500000
|
||||
NoteOn 0.001542 1 70 50.800001
|
||||
NoteOff 0.038005 1 70 63.500000
|
||||
NoteOn 0.002041 1 69 44.449999
|
||||
NoteOff 0.047528 1 69 63.500000
|
||||
NoteOn 0.002540 1 68 38.100002
|
||||
NoteOff 0.057007 1 68 63.500000
|
||||
NoteOn 0.003039 1 67 31.750000
|
||||
NoteOff 0.057007 1 67 63.500000
|
||||
NoteOn 0.003039 1 66 25.400000
|
||||
NoteOff 0.057007 1 66 63.500000
|
||||
NoteOn 0.003039 1 65 31.750000
|
||||
NoteOff 0.066531 1 65 63.500000
|
||||
NoteOn 0.003537 1 64 25.400000
|
||||
NoteOff 0.076009 1 64 63.500000
|
||||
NoteOn 0.004036 1 63 19.050001
|
||||
NoteOff 0.085533 1 63 63.500000
|
||||
NoteOn 0.004535 1 62 31.750000
|
||||
NoteOff 0.095011 1 62 63.500000
|
||||
NoteOn 0.005034 1 61 44.449999
|
||||
NoteOff 0.104535 1 61 63.500000
|
||||
ControlChange 0.005533 1 1 127.000000
|
||||
NoteOn 0.000000 1 60 63.500000
|
||||
NoteOff 1.500000 1 60 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.380000 1 60 63.500000
|
||||
NoteOn 0.020000 1 60 101.600002
|
||||
NoteOff 0.100000 1 60 63.500000
|
||||
NoteOn 0.100000 1 48 63.500000
|
||||
NoteOff 0.200000 1 48 63.500000
|
||||
NoteOn 0.200000 1 48 88.899998
|
||||
NoteOff 0.190023 1 48 63.500000
|
||||
NoteOn 0.010023 1 51 101.600002
|
||||
NoteOff 0.570023 1 51 63.500000
|
||||
NoteOn 0.030023 1 53 88.899998
|
||||
NoteOff 0.570023 1 53 63.500000
|
||||
NoteOn 0.030023 1 48 38.100002
|
||||
NoteOff 0.300000 1 48 63.500000
|
||||
NoteOn 0.300000 1 67 101.600002
|
||||
NoteOff 0.570023 1 67 63.500000
|
||||
NoteOn 0.030023 1 66 76.200003
|
||||
NoteOff 0.190023 1 66 63.500000
|
||||
NoteOn 0.010023 1 65 63.500000
|
||||
NoteOff 0.190023 1 65 63.500000
|
||||
NoteOn 0.010023 1 63 50.800001
|
||||
NoteOff 0.190023 1 63 63.500000
|
||||
NoteOn 0.010023 1 60 76.200003
|
||||
NoteOff 0.380000 1 60 63.500000
|
||||
NoteOn 0.020000 1 58 50.800001
|
||||
NoteOff 0.190023 1 58 63.500000
|
||||
NoteOn 0.010023 1 48 114.299997
|
||||
NoteOff 0.380000 1 48 63.500000
|
||||
NoteOn 0.020000 1 48 101.600002
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 36 63.500000
|
||||
NoteOff 0.200000 1 36 63.500000
|
||||
NoteOn 0.200000 1 36 88.899998
|
||||
NoteOff 0.190023 1 36 63.500000
|
||||
NoteOn 0.010023 1 39 101.600002
|
||||
NoteOff 0.570023 1 39 63.500000
|
||||
NoteOn 0.030023 1 41 88.899998
|
||||
NoteOff 0.570023 1 41 63.500000
|
||||
NoteOn 0.030023 1 84 127.000000
|
||||
NoteOff 0.475011 1 84 63.500000
|
||||
NoteOn 0.025034 1 83 120.649998
|
||||
NoteOff 0.066531 1 83 63.500000
|
||||
NoteOn 0.003537 1 82 114.299997
|
||||
NoteOff 0.057007 1 82 63.500000
|
||||
NoteOn 0.003039 1 81 107.950003
|
||||
NoteOff 0.047528 1 81 63.500000
|
||||
NoteOn 0.002540 1 80 101.600002
|
||||
NoteOff 0.047528 1 80 63.500000
|
||||
NoteOn 0.002540 1 78 95.250000
|
||||
NoteOff 0.038005 1 78 63.500000
|
||||
NoteOn 0.002041 1 78 88.899998
|
||||
NoteOff 0.028526 1 78 63.500000
|
||||
NoteOn 0.001542 1 77 82.549997
|
||||
NoteOff 0.019002 1 77 63.500000
|
||||
NoteOn 0.001043 1 76 76.200003
|
||||
NoteOff 0.019002 1 76 63.500000
|
||||
NoteOn 0.001043 1 75 69.850002
|
||||
NoteOff 0.019002 1 75 63.500000
|
||||
NoteOn 0.001043 1 74 63.500000
|
||||
NoteOff 0.019002 1 74 63.500000
|
||||
NoteOn 0.001043 1 73 63.500000
|
||||
NoteOff 0.028526 1 73 63.500000
|
||||
NoteOn 0.001542 1 72 63.500000
|
||||
NoteOff 0.019002 1 72 63.500000
|
||||
NoteOn 0.001043 1 71 57.149998
|
||||
NoteOff 0.028526 1 71 63.500000
|
||||
NoteOn 0.001542 1 70 50.800001
|
||||
NoteOff 0.038005 1 70 63.500000
|
||||
NoteOn 0.002041 1 69 44.449999
|
||||
NoteOff 0.047528 1 69 63.500000
|
||||
NoteOn 0.002540 1 68 38.100002
|
||||
NoteOff 0.057007 1 68 63.500000
|
||||
NoteOn 0.003039 1 67 31.750000
|
||||
NoteOff 0.057007 1 67 63.500000
|
||||
NoteOn 0.003039 1 66 25.400000
|
||||
NoteOff 0.057007 1 66 63.500000
|
||||
NoteOn 0.003039 1 65 31.750000
|
||||
NoteOff 0.066531 1 65 63.500000
|
||||
NoteOn 0.003537 1 64 25.400000
|
||||
NoteOff 0.076009 1 64 63.500000
|
||||
NoteOn 0.004036 1 63 19.050001
|
||||
NoteOff 0.085533 1 63 63.500000
|
||||
NoteOn 0.004535 1 62 31.750000
|
||||
NoteOff 0.095011 1 62 63.500000
|
||||
NoteOn 0.005034 1 61 44.449999
|
||||
NoteOff 0.104535 1 61 63.500000
|
||||
ControlChange 0.005533 1 1 127.000000
|
||||
NoteOn 0.000000 1 60 63.500000
|
||||
NoteOff 1.500000 1 60 63.500000
|
||||
|
||||
@@ -1,112 +1,112 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
StringDamping 0.0 2 127
|
||||
Chord 0.0 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.1 2 32
|
||||
ChordOff 0.1 2 100
|
||||
|
||||
StringDamping 0.0 2 120
|
||||
Strumming 0.0 2 127
|
||||
NoteOn 0.1 2 55 60
|
||||
NoteOff 0.7 2 55 60
|
||||
NoteOn 0.0 2 60 60
|
||||
NoteOff 0.4 2 60 60
|
||||
NoteOn 0.0 2 62 60
|
||||
NoteOff 0.2 2 62 60
|
||||
NoteOn 0.0 2 60 60
|
||||
NoteOff 0.2 2 60 60
|
||||
NoteOn 0.0 2 59 60
|
||||
NoteOff 0.4 2 59 60
|
||||
NoteOn 0.0 2 57 60
|
||||
NoteOff 0.2 2 57 60
|
||||
NoteOn 0.0 2 55 60
|
||||
NoteOff 0.2 2 55 60
|
||||
NoteOn 0.0 2 62 60
|
||||
NoteOff 0.8 2 62 60
|
||||
|
||||
NoteOn 0.1 2 67 100
|
||||
NoteOff 0.7 2 67 100
|
||||
NoteOn 0.0 2 72 100
|
||||
NoteOff 0.4 2 72 100
|
||||
NoteOn 0.0 2 74 100
|
||||
NoteOff 0.2 2 74 100
|
||||
NoteOn 0.0 2 72 100
|
||||
NoteOff 0.2 2 72 100
|
||||
NotStrumming 0.0 2 0
|
||||
NoteOn 0.0 2 71 100
|
||||
NoteOff 0.1 2 71 100
|
||||
NoteOn 0.0 2 76 100
|
||||
NoteOff 0.1 2 76 100
|
||||
NoteOn 0.0 2 74 100
|
||||
NoteOff 0.1 2 74 100
|
||||
NoteOn 0.0 2 70 100
|
||||
NoteOff 0.1 2 70 100
|
||||
NoteOn 0.0 2 69 100
|
||||
NoteOff 0.1 2 69 100
|
||||
NoteOn 0.0 2 67 100
|
||||
NoteOff 0.1 2 67 100
|
||||
NoteOn 0.0 2 64 100
|
||||
NoteOff 0.1 2 64 100
|
||||
NoteOn 0.0 2 62 100
|
||||
NoteOff 0.1 2 62 100
|
||||
Chord 0.0 2 64 G
|
||||
ChordOff 2.0 2 64
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
StringDamping 0.0 2 127
|
||||
Chord 0.0 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 C
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 D
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.2 2 32
|
||||
StringDamping 0.0 2 127
|
||||
ChordOff 0.0 2 100
|
||||
Chord 0.2 2 100 G
|
||||
StringDamping 0.1 2 32
|
||||
ChordOff 0.1 2 100
|
||||
|
||||
StringDamping 0.0 2 120
|
||||
Strumming 0.0 2 127
|
||||
NoteOn 0.1 2 55 60
|
||||
NoteOff 0.7 2 55 60
|
||||
NoteOn 0.0 2 60 60
|
||||
NoteOff 0.4 2 60 60
|
||||
NoteOn 0.0 2 62 60
|
||||
NoteOff 0.2 2 62 60
|
||||
NoteOn 0.0 2 60 60
|
||||
NoteOff 0.2 2 60 60
|
||||
NoteOn 0.0 2 59 60
|
||||
NoteOff 0.4 2 59 60
|
||||
NoteOn 0.0 2 57 60
|
||||
NoteOff 0.2 2 57 60
|
||||
NoteOn 0.0 2 55 60
|
||||
NoteOff 0.2 2 55 60
|
||||
NoteOn 0.0 2 62 60
|
||||
NoteOff 0.8 2 62 60
|
||||
|
||||
NoteOn 0.1 2 67 100
|
||||
NoteOff 0.7 2 67 100
|
||||
NoteOn 0.0 2 72 100
|
||||
NoteOff 0.4 2 72 100
|
||||
NoteOn 0.0 2 74 100
|
||||
NoteOff 0.2 2 74 100
|
||||
NoteOn 0.0 2 72 100
|
||||
NoteOff 0.2 2 72 100
|
||||
NotStrumming 0.0 2 0
|
||||
NoteOn 0.0 2 71 100
|
||||
NoteOff 0.1 2 71 100
|
||||
NoteOn 0.0 2 76 100
|
||||
NoteOff 0.1 2 76 100
|
||||
NoteOn 0.0 2 74 100
|
||||
NoteOff 0.1 2 74 100
|
||||
NoteOn 0.0 2 70 100
|
||||
NoteOff 0.1 2 70 100
|
||||
NoteOn 0.0 2 69 100
|
||||
NoteOff 0.1 2 69 100
|
||||
NoteOn 0.0 2 67 100
|
||||
NoteOff 0.1 2 67 100
|
||||
NoteOn 0.0 2 64 100
|
||||
NoteOff 0.1 2 64 100
|
||||
NoteOn 0.0 2 62 100
|
||||
NoteOff 0.1 2 62 100
|
||||
Chord 0.0 2 64 G
|
||||
ChordOff 2.0 2 64
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 72 88.899998
|
||||
NoteOff 0.400000 1 72 63.500000
|
||||
NoteOn 0.000000 1 71 101.600002
|
||||
NoteOff 0.400000 1 71 63.500000
|
||||
NoteOn 0.000000 1 69 63.500000
|
||||
NoteOff 0.320000 1 69 63.500000
|
||||
NoteOn 0.080000 1 71 101.600002
|
||||
NoteOff 1.200000 1 71 63.500000
|
||||
NoteOn 0.000000 1 67 76.200003
|
||||
NoteOff 0.320000 1 67 63.500000
|
||||
NoteOn 0.080000 1 64 38.100002
|
||||
NoteOff 0.320000 1 64 63.500000
|
||||
NoteOn 0.080000 1 67 101.600002
|
||||
NoteOff 0.800000 1 67 63.500000
|
||||
NoteOn 0.000000 1 69 127.000000
|
||||
NoteOff 0.320000 1 69 63.500000
|
||||
NoteOn 0.080000 1 69 76.200003
|
||||
NoteOff 2.000000 1 69 63.500000
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.400000 1 60 63.500000
|
||||
NoteOn 0.000000 1 62 63.500000
|
||||
NoteOff 0.400000 1 62 63.500000
|
||||
NoteOn 0.000000 1 64 63.500000
|
||||
NoteOff 0.400000 1 64 63.500000
|
||||
NoteOn 0.000000 1 62 88.899998
|
||||
NoteOff 1.200000 1 62 63.500000
|
||||
NoteOn 0.000000 1 60 38.100002
|
||||
NoteOff 0.480000 1 60 63.500000
|
||||
NoteOn 0.120000 1 60 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 2.000000 1 60 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 72 88.899998
|
||||
NoteOff 0.400000 1 72 63.500000
|
||||
NoteOn 0.000000 1 71 101.600002
|
||||
NoteOff 0.400000 1 71 63.500000
|
||||
NoteOn 0.000000 1 69 63.500000
|
||||
NoteOff 0.320000 1 69 63.500000
|
||||
NoteOn 0.080000 1 71 101.600002
|
||||
NoteOff 1.200000 1 71 63.500000
|
||||
NoteOn 0.000000 1 67 76.200003
|
||||
NoteOff 0.320000 1 67 63.500000
|
||||
NoteOn 0.080000 1 64 38.100002
|
||||
NoteOff 0.320000 1 64 63.500000
|
||||
NoteOn 0.080000 1 67 101.600002
|
||||
NoteOff 0.800000 1 67 63.500000
|
||||
NoteOn 0.000000 1 69 127.000000
|
||||
NoteOff 0.320000 1 69 63.500000
|
||||
NoteOn 0.080000 1 69 76.200003
|
||||
NoteOff 2.000000 1 69 63.500000
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.400000 1 60 63.500000
|
||||
NoteOn 0.000000 1 62 63.500000
|
||||
NoteOff 0.400000 1 62 63.500000
|
||||
NoteOn 0.000000 1 64 63.500000
|
||||
NoteOff 0.400000 1 64 63.500000
|
||||
NoteOn 0.000000 1 62 88.899998
|
||||
NoteOff 1.200000 1 62 63.500000
|
||||
NoteOn 0.000000 1 60 38.100002
|
||||
NoteOff 0.480000 1 60 63.500000
|
||||
NoteOn 0.120000 1 60 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 2.000000 1 60 63.500000
|
||||
|
||||
@@ -1,128 +1,128 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.400000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 49 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.400000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 60.000000
|
||||
NoteOn 0.200000 1 38 80.000000
|
||||
NoteOn 0.200000 1 38 90.000000
|
||||
NoteOn 0.100000 1 38 100.000000
|
||||
NoteOn 0.100000 1 38 105.000000
|
||||
NoteOn 0.100000 1 38 110.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 41 127.000000
|
||||
NoteOn 0.100000 1 41 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.300000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.000000 1 46 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOff 1.000000 1 49 127.000000
|
||||
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.400000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 49 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.400000 1 38 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 60.000000
|
||||
NoteOn 0.200000 1 38 80.000000
|
||||
NoteOn 0.200000 1 38 90.000000
|
||||
NoteOn 0.100000 1 38 100.000000
|
||||
NoteOn 0.100000 1 38 105.000000
|
||||
NoteOn 0.100000 1 38 110.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 41 127.000000
|
||||
NoteOn 0.100000 1 41 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOn 0.000000 1 42 127.000000
|
||||
NoteOn 0.200000 1 56 127.000000
|
||||
NoteOn 0.200000 1 38 127.000000
|
||||
NoteOn 0.000000 1 56 127.000000
|
||||
NoteOn 0.300000 1 36 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.000000 1 38 127.000000
|
||||
NoteOn 0.200000 1 36 127.000000
|
||||
NoteOn 0.100000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.000000 1 36 127.000000
|
||||
NoteOn 0.000000 1 54 127.000000
|
||||
NoteOn 0.100000 1 36 127.000000
|
||||
NoteOn 0.100000 1 42 127.000000
|
||||
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.300000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.200000 1 32 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
|
||||
NoteOn 0.100000 1 32 127.000000
|
||||
NoteOn 0.000000 1 46 127.000000
|
||||
NoteOn 0.000000 1 49 127.000000
|
||||
NoteOff 1.000000 1 49 127.000000
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 57 50.800001
|
||||
NoteOn 0.100000 1 57 50.800001
|
||||
NoteOn 0.100000 1 57 127.000000
|
||||
NoteOn 0.200000 1 59 63.500000
|
||||
NoteOff 0.100000 1 59 63.500000
|
||||
NoteOn 0.100000 1 61 127.000000
|
||||
NoteOff 0.100000 1 61 63.500000
|
||||
NoteOn 0.100000 1 62 127.000000
|
||||
NoteOff 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 64 114.299997
|
||||
NoteOn 0.200000 1 62 63.500000
|
||||
NoteOff 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 61 127.000000
|
||||
NoteOn 0.400000 1 69 127.000000
|
||||
NoteOn 0.200000 1 69 12.700000
|
||||
NoteOff 0.049977 1 69 63.500000
|
||||
NoteOn 0.049977 1 73 63.500000
|
||||
NoteOff 0.049977 1 73 63.500000
|
||||
NoteOn 0.049977 1 71 63.500000
|
||||
NoteOff 0.100000 1 71 63.500000
|
||||
NoteOn 0.100000 1 85 127.000000
|
||||
NoteOn 0.200000 1 45 50.800001
|
||||
NoteOff 0.400000 1 45 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 57 50.800001
|
||||
NoteOn 0.100000 1 57 50.800001
|
||||
NoteOn 0.100000 1 57 127.000000
|
||||
NoteOn 0.200000 1 59 63.500000
|
||||
NoteOff 0.100000 1 59 63.500000
|
||||
NoteOn 0.100000 1 61 127.000000
|
||||
NoteOff 0.100000 1 61 63.500000
|
||||
NoteOn 0.100000 1 62 127.000000
|
||||
NoteOff 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 64 114.299997
|
||||
NoteOn 0.200000 1 62 63.500000
|
||||
NoteOff 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 61 127.000000
|
||||
NoteOn 0.400000 1 69 127.000000
|
||||
NoteOn 0.200000 1 69 12.700000
|
||||
NoteOff 0.049977 1 69 63.500000
|
||||
NoteOn 0.049977 1 73 63.500000
|
||||
NoteOff 0.049977 1 73 63.500000
|
||||
NoteOn 0.049977 1 71 63.500000
|
||||
NoteOff 0.100000 1 71 63.500000
|
||||
NoteOn 0.100000 1 85 127.000000
|
||||
NoteOn 0.200000 1 45 50.800001
|
||||
NoteOff 0.400000 1 45 63.500000
|
||||
|
||||
@@ -1,111 +1,111 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.118776 1 60 63.500000
|
||||
NoteOn 0.006259 1 59 127.000000
|
||||
NoteOff 0.118776 1 59 63.500000
|
||||
NoteOn 0.006259 1 60 127.000000
|
||||
NoteOff 0.118776 1 60 63.500000
|
||||
NoteOn 0.006259 1 62 127.000000
|
||||
NoteOff 0.118776 1 62 63.500000
|
||||
NoteOn 0.006259 1 63 127.000000
|
||||
NoteOff 0.237506 1 63 63.500000
|
||||
NoteOn 0.012517 1 63 127.000000
|
||||
NoteOff 0.062494 1 63 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.062494 1 65 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.237506 1 67 63.500000
|
||||
NoteOn 0.012517 1 67 127.000000
|
||||
NoteOff 0.118776 1 67 63.500000
|
||||
NoteOn 0.006259 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 63 127.000000
|
||||
NoteOff 0.062494 1 63 63.500000
|
||||
NoteOn 0.062494 1 60 127.000000
|
||||
NoteOff 0.237506 1 60 63.500000
|
||||
NoteOn 0.012517 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 69 127.000000
|
||||
NoteOff 0.118776 1 69 63.500000
|
||||
NoteOn 0.006259 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.118776 1 74 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 75 127.000000
|
||||
NoteOff 0.062494 1 75 63.500000
|
||||
NoteOn 0.062494 1 77 127.000000
|
||||
NoteOff 0.118776 1 77 63.500000
|
||||
NoteOn 0.006259 1 79 127.000000
|
||||
NoteOff 0.118776 1 79 63.500000
|
||||
NoteOn 0.006259 1 77 127.000000
|
||||
NoteOff 0.118776 1 77 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.475011 1 70 63.500000
|
||||
NoteOn 0.025034 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 75 127.000000
|
||||
NoteOff 0.118776 1 75 63.500000
|
||||
NoteOn 0.006259 1 79 127.000000
|
||||
NoteOff 0.062494 1 79 63.500000
|
||||
NoteOn 0.062494 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 77 127.000000
|
||||
NoteOff 0.062494 1 77 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 75 127.000000
|
||||
NoteOff 0.062494 1 75 63.500000
|
||||
NoteOn 0.062494 1 68 127.000000
|
||||
NoteOff 0.062494 1 68 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.118776 1 67 63.500000
|
||||
NoteOn 0.006259 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.118776 1 65 63.500000
|
||||
NoteOn 0.006259 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.062494 1 65 63.500000
|
||||
NoteOn 0.062494 1 63 127.000000
|
||||
NoteOff 0.118776 1 63 63.500000
|
||||
NoteOn 0.006259 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 62 127.000000
|
||||
NoteOff 0.062494 1 62 63.500000
|
||||
NoteOn 0.062494 1 60 127.000000
|
||||
NoteOff 0.124989 1 60 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.187483 1 79 63.500000
|
||||
NoteOn 0.187483 1 82 127.000000
|
||||
NoteOff 0.356236 1 82 63.500000
|
||||
NoteOn 0.018776 1 84 127.000000
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
NoteOff 0.950023 1 84 63.500000
|
||||
NoteOff 0.050023 1 84 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.118776 1 60 63.500000
|
||||
NoteOn 0.006259 1 59 127.000000
|
||||
NoteOff 0.118776 1 59 63.500000
|
||||
NoteOn 0.006259 1 60 127.000000
|
||||
NoteOff 0.118776 1 60 63.500000
|
||||
NoteOn 0.006259 1 62 127.000000
|
||||
NoteOff 0.118776 1 62 63.500000
|
||||
NoteOn 0.006259 1 63 127.000000
|
||||
NoteOff 0.237506 1 63 63.500000
|
||||
NoteOn 0.012517 1 63 127.000000
|
||||
NoteOff 0.062494 1 63 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.062494 1 65 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.237506 1 67 63.500000
|
||||
NoteOn 0.012517 1 67 127.000000
|
||||
NoteOff 0.118776 1 67 63.500000
|
||||
NoteOn 0.006259 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 63 127.000000
|
||||
NoteOff 0.062494 1 63 63.500000
|
||||
NoteOn 0.062494 1 60 127.000000
|
||||
NoteOff 0.237506 1 60 63.500000
|
||||
NoteOn 0.012517 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 69 127.000000
|
||||
NoteOff 0.118776 1 69 63.500000
|
||||
NoteOn 0.006259 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.118776 1 74 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 75 127.000000
|
||||
NoteOff 0.062494 1 75 63.500000
|
||||
NoteOn 0.062494 1 77 127.000000
|
||||
NoteOff 0.118776 1 77 63.500000
|
||||
NoteOn 0.006259 1 79 127.000000
|
||||
NoteOff 0.118776 1 79 63.500000
|
||||
NoteOn 0.006259 1 77 127.000000
|
||||
NoteOff 0.118776 1 77 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.475011 1 70 63.500000
|
||||
NoteOn 0.025034 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 75 127.000000
|
||||
NoteOff 0.118776 1 75 63.500000
|
||||
NoteOn 0.006259 1 79 127.000000
|
||||
NoteOff 0.062494 1 79 63.500000
|
||||
NoteOn 0.062494 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.118776 1 70 63.500000
|
||||
NoteOn 0.006259 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 77 127.000000
|
||||
NoteOff 0.062494 1 77 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.118776 1 72 63.500000
|
||||
NoteOn 0.006259 1 75 127.000000
|
||||
NoteOff 0.062494 1 75 63.500000
|
||||
NoteOn 0.062494 1 68 127.000000
|
||||
NoteOff 0.062494 1 68 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.118776 1 67 63.500000
|
||||
NoteOn 0.006259 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 74 127.000000
|
||||
NoteOff 0.062494 1 74 63.500000
|
||||
NoteOn 0.062494 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.118776 1 65 63.500000
|
||||
NoteOn 0.006259 1 68 127.000000
|
||||
NoteOff 0.118776 1 68 63.500000
|
||||
NoteOn 0.006259 1 72 127.000000
|
||||
NoteOff 0.062494 1 72 63.500000
|
||||
NoteOn 0.062494 1 65 127.000000
|
||||
NoteOff 0.062494 1 65 63.500000
|
||||
NoteOn 0.062494 1 63 127.000000
|
||||
NoteOff 0.118776 1 63 63.500000
|
||||
NoteOn 0.006259 1 67 127.000000
|
||||
NoteOff 0.062494 1 67 63.500000
|
||||
NoteOn 0.062494 1 70 127.000000
|
||||
NoteOff 0.062494 1 70 63.500000
|
||||
NoteOn 0.062494 1 62 127.000000
|
||||
NoteOff 0.062494 1 62 63.500000
|
||||
NoteOn 0.062494 1 60 127.000000
|
||||
NoteOff 0.124989 1 60 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.187483 1 79 63.500000
|
||||
NoteOn 0.187483 1 82 127.000000
|
||||
NoteOff 0.356236 1 82 63.500000
|
||||
NoteOn 0.018776 1 84 127.000000
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
NoteOff 0.950023 1 84 63.500000
|
||||
NoteOff 0.050023 1 84 63.500000
|
||||
|
||||
@@ -1,97 +1,97 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoiseLevel 0.000 1 30.0
|
||||
NoteOn 0.000 1 79 80.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
NoteOn 0.100 1 84 90.000000
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 70.0
|
||||
NoteOn 0.100 1 79 90.000000
|
||||
NoteOff 0.150 1 79 63.500000
|
||||
|
||||
NoteOn 0.050 1 79 80.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
NoteOn 0.100 1 84 90.000000
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.100 1 76 70.000000
|
||||
NoteOn 0.100 1 77 70.000000
|
||||
NoteOn 0.100 1 79 80.000000
|
||||
NoteOff 0.100 1 79 70.0
|
||||
NoteOn 0.100 1 79 90.000000
|
||||
NoteOff 0.150 1 79 63.500000
|
||||
|
||||
NoteOn 0.050 1 81 120.000000
|
||||
NoteOn 0.100 1 79 110.000000
|
||||
NoteOn 0.100 1 77 70.000000
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
NoteOn 0.100 1 72 70.000000
|
||||
|
||||
NoteOn 0.100 1 81 120.000000
|
||||
NoteOn 0.200 1 82 60.000000
|
||||
NoteOff 0.100 1 82 64.000000
|
||||
NoteOn 0.100 1 81 110.000000
|
||||
NoteOn 0.200 1 79 60.000000
|
||||
NoteOff 0.100 1 79 64.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOn 0.200 1 76 60.000000
|
||||
NoteOff 0.100 1 76 64.000000
|
||||
|
||||
NoteOn 0.100 1 77 120.000000
|
||||
NoteOn 0.100 1 76 110.000000
|
||||
NoteOn 0.100 1 74 70.000000
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOff 0.100 1 77 64.000000
|
||||
|
||||
NoteOn 0.100 1 79 120.000000
|
||||
NoteOn 0.100 1 81 110.000000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOn 0.100 1 77 120.000000
|
||||
NoteOn 0.100 1 76 110.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
|
||||
NoteOn 0.100 1 79 120.000000
|
||||
NoteOn 0.200 1 81 110.000000
|
||||
NoteOn 0.200 1 79 70.000000
|
||||
NoteOn 0.200 1 77 120.000000
|
||||
NoteOn 0.200 1 76 110.000000
|
||||
NoteOn 0.200 1 74 110.000000
|
||||
NoteOff 0.100 1 74 110.000000
|
||||
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
NoteOn 0.100 1 72 70.000000
|
||||
NoteOn 0.100 1 74 120.000000
|
||||
NoteOff 0.070 1 74 120.000000
|
||||
|
||||
NoteOn 0.030 1 76 100.000000
|
||||
NoteOff 0.070 1 76 120.000000
|
||||
NoteOn 0.030 1 77 100.000000
|
||||
NoteOff 0.070 1 77 120.000000
|
||||
NoteOn 0.030 1 79 100.000000
|
||||
NoteOff 0.070 1 79 120.000000
|
||||
NoteOn 0.030 1 81 100.000000
|
||||
NoteOff 0.070 1 81 120.000000
|
||||
NoteOn 0.030 1 82 100.000000
|
||||
NoteOff 0.070 1 82 120.000000
|
||||
NoteOn 0.030 1 81 100.000000
|
||||
NoteOff 0.070 1 81 120.000000
|
||||
NoteOn 0.030 1 82 100.000000
|
||||
NoteOff 0.070 1 82 120.000000
|
||||
NoteOn 0.030 1 79 100.000000
|
||||
NoteOff 0.070 1 79 120.000000
|
||||
|
||||
NoiseLevel 0.000 1 40.0
|
||||
Modulation 0.000 1 25.0
|
||||
NoteOn 0.030 1 77 120.000000
|
||||
NoteOn 1.000 1 89 100.000000
|
||||
NoteOff 0.200 1 77 120.000000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoiseLevel 0.000 1 30.0
|
||||
NoteOn 0.000 1 79 80.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
NoteOn 0.100 1 84 90.000000
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 70.0
|
||||
NoteOn 0.100 1 79 90.000000
|
||||
NoteOff 0.150 1 79 63.500000
|
||||
|
||||
NoteOn 0.050 1 79 80.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
NoteOn 0.100 1 84 90.000000
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.100 1 76 70.000000
|
||||
NoteOn 0.100 1 77 70.000000
|
||||
NoteOn 0.100 1 79 80.000000
|
||||
NoteOff 0.100 1 79 70.0
|
||||
NoteOn 0.100 1 79 90.000000
|
||||
NoteOff 0.150 1 79 63.500000
|
||||
|
||||
NoteOn 0.050 1 81 120.000000
|
||||
NoteOn 0.100 1 79 110.000000
|
||||
NoteOn 0.100 1 77 70.000000
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
NoteOn 0.100 1 72 70.000000
|
||||
|
||||
NoteOn 0.100 1 81 120.000000
|
||||
NoteOn 0.200 1 82 60.000000
|
||||
NoteOff 0.100 1 82 64.000000
|
||||
NoteOn 0.100 1 81 110.000000
|
||||
NoteOn 0.200 1 79 60.000000
|
||||
NoteOff 0.100 1 79 64.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOn 0.200 1 76 60.000000
|
||||
NoteOff 0.100 1 76 64.000000
|
||||
|
||||
NoteOn 0.100 1 77 120.000000
|
||||
NoteOn 0.100 1 76 110.000000
|
||||
NoteOn 0.100 1 74 70.000000
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 77 110.000000
|
||||
NoteOff 0.100 1 77 64.000000
|
||||
|
||||
NoteOn 0.100 1 79 120.000000
|
||||
NoteOn 0.100 1 81 110.000000
|
||||
NoteOn 0.100 1 79 70.000000
|
||||
NoteOn 0.100 1 77 120.000000
|
||||
NoteOn 0.100 1 76 110.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
|
||||
NoteOn 0.100 1 79 120.000000
|
||||
NoteOn 0.200 1 81 110.000000
|
||||
NoteOn 0.200 1 79 70.000000
|
||||
NoteOn 0.200 1 77 120.000000
|
||||
NoteOn 0.200 1 76 110.000000
|
||||
NoteOn 0.200 1 74 110.000000
|
||||
NoteOff 0.100 1 74 110.000000
|
||||
|
||||
NoteOn 0.100 1 76 120.000000
|
||||
NoteOn 0.100 1 74 110.000000
|
||||
NoteOn 0.100 1 72 70.000000
|
||||
NoteOn 0.100 1 74 120.000000
|
||||
NoteOff 0.070 1 74 120.000000
|
||||
|
||||
NoteOn 0.030 1 76 100.000000
|
||||
NoteOff 0.070 1 76 120.000000
|
||||
NoteOn 0.030 1 77 100.000000
|
||||
NoteOff 0.070 1 77 120.000000
|
||||
NoteOn 0.030 1 79 100.000000
|
||||
NoteOff 0.070 1 79 120.000000
|
||||
NoteOn 0.030 1 81 100.000000
|
||||
NoteOff 0.070 1 81 120.000000
|
||||
NoteOn 0.030 1 82 100.000000
|
||||
NoteOff 0.070 1 82 120.000000
|
||||
NoteOn 0.030 1 81 100.000000
|
||||
NoteOff 0.070 1 81 120.000000
|
||||
NoteOn 0.030 1 82 100.000000
|
||||
NoteOff 0.070 1 82 120.000000
|
||||
NoteOn 0.030 1 79 100.000000
|
||||
NoteOff 0.070 1 79 120.000000
|
||||
|
||||
NoiseLevel 0.000 1 40.0
|
||||
Modulation 0.000 1 25.0
|
||||
NoteOn 0.030 1 77 120.000000
|
||||
NoteOn 1.000 1 89 100.000000
|
||||
NoteOff 0.200 1 77 120.000000
|
||||
|
||||
@@ -1,180 +1,180 @@
|
||||
NoteOn 0.000315 2 69 69
|
||||
NoteOff 0.139851 2 69 0
|
||||
NoteOn 0.292059 2 74 79
|
||||
NoteOff 0.069197 2 74 0
|
||||
NoteOn 0.046664 2 74 71
|
||||
NoteOff 0.062959 2 74 0
|
||||
NoteOn 0.025777 2 74 47
|
||||
NoteOff 0.037024 2 74 0
|
||||
NoteOn 0.065524 2 74 63
|
||||
NoteOff 0.059605 2 74 0
|
||||
NoteOn 0.019622 2 74 47
|
||||
NoteOff 0.039886 2 74 0
|
||||
NoteOn 0.052080 2 74 67
|
||||
NoteOff 0.061615 2 74 0
|
||||
NoteOn 0.021743 2 74 53
|
||||
NoteOff 0.042091 2 74 0
|
||||
NoteOn 0.056058 2 74 69
|
||||
NoteOff 0.122627 2 74 0
|
||||
NoteOn 0.047608 2 74 87
|
||||
NoteOff 0.128503 2 74 0
|
||||
NoteOn 0.187575 2 74 79
|
||||
NoteOff 0.113216 2 74 0
|
||||
NoteOn 0.055912 2 73 82
|
||||
NoteOff 0.145445 2 73 0
|
||||
NoteOn 0.104378 2 73 73
|
||||
NoteOff 0.120442 2 73 0
|
||||
NoteOn 0.047541 2 69 73
|
||||
NoteOff 0.151890 2 69 0
|
||||
NoteOn 0.098655 2 69 64
|
||||
NoteOff 0.137789 2 69 0
|
||||
NoteOn 0.042621 2 71 76
|
||||
NoteOff 0.171097 2 71 0
|
||||
NoteOn 0.081635 2 71 61
|
||||
NoteOff 0.073859 2 71 0
|
||||
NoteOn 0.110418 2 66 69
|
||||
NoteOff 0.304332 2 66 0
|
||||
NoteOn 0.119942 2 66 69
|
||||
NoteOff 0.057357 2 66 0
|
||||
NoteOn 0.034674 2 66 60
|
||||
NoteOff 0.056795 2 66 0
|
||||
NoteOn 0.018853 2 66 76
|
||||
NoteOff 0.061343 2 66 0
|
||||
NoteOn 0.048614 2 66 67
|
||||
NoteOff 0.058950 2 66 0
|
||||
NoteOn 0.008595 2 66 63
|
||||
NoteOff 0.057296 2 66 0
|
||||
NoteOn 0.036486 2 66 67
|
||||
NoteOff 0.125570 2 66 0
|
||||
NoteOn 0.055182 2 66 82
|
||||
NoteOff 0.079954 2 66 0
|
||||
NoteOn 0.021852 2 66 64
|
||||
NoteOff 0.085418 2 66 0
|
||||
NoteOn 0.065201 2 64 79
|
||||
NoteOff 0.070529 2 64 0
|
||||
NoteOn 0.055850 2 66 76
|
||||
NoteOff 0.080037 2 66 0
|
||||
NoteOn 0.047400 2 64 73
|
||||
NoteOff 0.079393 2 64 0
|
||||
NoteOn 0.075934 2 62 76
|
||||
NoteOff 0.073956 2 62 0
|
||||
NoteOn 0.038639 2 62 69
|
||||
NoteOff 0.125310 2 62 0
|
||||
NoteOn 0.067131 2 62 67
|
||||
NoteOff 0.114670 2 62 0
|
||||
NoteOn 0.053501 2 62 62
|
||||
NoteOff 0.058095 2 62 0
|
||||
NoteOn 0.017163 2 62 47
|
||||
NoteOff 0.056632 2 62 0
|
||||
NoteOn 0.023810 2 62 64
|
||||
NoteOff 0.070499 2 62 0
|
||||
NoteOn 0.018403 2 62 64
|
||||
NoteOff 0.044563 2 62 0
|
||||
NoteOn 0.038905 2 62 64
|
||||
NoteOff 0.128219 2 62 0
|
||||
NoteOn 0.020654 2 62 79
|
||||
NoteOff 0.100199 2 62 0
|
||||
NoteOn 0.119351 2 66 69
|
||||
NoteOff 0.140313 2 66 0
|
||||
NoteOn 0.023378 2 64 67
|
||||
NoteOff 0.157359 2 64 0
|
||||
NoteOn 0.103959 2 62 69
|
||||
NoteOff 0.072433 2 62 0
|
||||
NoteOn 0.089338 2 62 63
|
||||
NoteOff 0.067472 2 62 0
|
||||
NoteOn 0.131003 2 62 63
|
||||
NoteOff 0.092003 2 62 0
|
||||
NoteOn 0.084592 2 62 64
|
||||
NoteOff 0.156367 2 62 0
|
||||
NoteOn 0.024942 2 62 69
|
||||
NoteOff 0.154966 2 62 0
|
||||
NoteOn 0.023168 2 62 67
|
||||
NoteOff 0.402274 2 62 0
|
||||
NoteOn 0.151088 2 69 82
|
||||
NoteOff 0.295762 2 69 0
|
||||
NoteOn 0.144298 2 74 67
|
||||
NoteOff 0.064684 2 74 0
|
||||
NoteOn 0.046916 2 74 61
|
||||
NoteOff 0.061961 2 74 0
|
||||
NoteOn 0.013175 2 74 58
|
||||
NoteOff 0.063742 2 74 0
|
||||
NoteOn 0.063079 2 74 64
|
||||
NoteOff 0.115461 2 74 0
|
||||
NoteOn 0.066345 2 74 64
|
||||
NoteOff 0.104482 2 74 0
|
||||
NoteOn 0.058225 2 74 69
|
||||
NoteOff 0.137897 2 74 0
|
||||
NoteOn 0.028045 2 74 82
|
||||
NoteOff 0.227867 2 74 0
|
||||
NoteOn 0.089793 2 74 73
|
||||
NoteOff 0.137043 2 74 0
|
||||
NoteOn 0.027024 2 73 64
|
||||
NoteOff 0.156746 2 73 0
|
||||
NoteOn 0.091269 2 73 73
|
||||
NoteOff 0.144116 2 73 0
|
||||
NoteOn 0.040937 2 69 76
|
||||
NoteOff 0.131683 2 69 0
|
||||
NoteOn 0.111516 2 69 63
|
||||
NoteOff 0.119809 2 69 0
|
||||
NoteOn 0.055603 2 71 69
|
||||
NoteOff 0.151398 2 71 0
|
||||
NoteOn 0.092930 2 71 61
|
||||
NoteOff 0.077496 2 71 0
|
||||
NoteOn 0.108207 2 66 73
|
||||
NoteOff 0.268736 2 66 0
|
||||
NoteOn 0.105231 2 66 82
|
||||
NoteOff 0.068718 2 66 0
|
||||
NoteOn 0.052997 2 66 69
|
||||
NoteOff 0.121595 2 66 0
|
||||
NoteOn 0.089177 2 66 58
|
||||
NoteOff 0.106939 2 66 0
|
||||
NoteOn 0.049675 2 66 67
|
||||
NoteOff 0.145059 2 66 0
|
||||
NoteOn 0.033535 2 66 24
|
||||
NoteOff 0.169419 2 66 0
|
||||
NoteOn 0.058897 2 66 63
|
||||
NoteOff 0.086285 2 66 0
|
||||
NoteOn 0.041606 2 64 76
|
||||
NoteOff 0.084153 2 64 0
|
||||
NoteOn 0.044987 2 66 69
|
||||
NoteOff 0.100239 2 66 0
|
||||
NoteOn 0.022854 2 64 76
|
||||
NoteOff 0.075048 2 64 0
|
||||
NoteOn 0.065983 2 62 67
|
||||
NoteOff 0.081468 2 62 0
|
||||
NoteOn 0.040989 2 62 71
|
||||
NoteOff 0.134240 2 62 0
|
||||
NoteOn 0.062401 2 62 61
|
||||
NoteOff 0.119152 2 62 0
|
||||
NoteOn 0.050401 2 62 64
|
||||
NoteOff 0.128506 2 62 0
|
||||
NoteOn 0.030134 2 62 64
|
||||
NoteOff 0.142160 2 62 0
|
||||
NoteOn 0.037510 2 62 79
|
||||
NoteOff 0.239364 2 62 0
|
||||
NoteOn 0.018231 2 66 73
|
||||
NoteOff 0.131528 2 66 0
|
||||
NoteOn 0.042607 2 64 76
|
||||
NoteOff 0.149396 2 64 0
|
||||
NoteOn 0.089318 2 62 73
|
||||
NoteOff 0.087485 2 62 0
|
||||
NoteOn 0.085324 2 62 73
|
||||
NoteOff 0.072863 2 62 0
|
||||
NoteOn 0.023103 2 62 73
|
||||
NoteOff 0.085817 2 62 0
|
||||
NoteOn 0.021983 2 62 64
|
||||
NoteOff 0.061305 2 62 0
|
||||
NoteOn 0.036091 2 62 61
|
||||
NoteOff 0.070809 2 62 0
|
||||
NoteOn 0.011382 2 62 58
|
||||
NoteOff 0.060215 2 62 0
|
||||
NoteOn 0.027180 2 62 61
|
||||
NoteOff 0.075393 2 62 0
|
||||
NoteOn 0.025560 2 62 29
|
||||
NoteOff 0.038858 2 62 0
|
||||
NoteOn 0.030691 2 62 64
|
||||
NoteOff 0.129305 2 62 0
|
||||
NoteOn 0.021792 2 62 76
|
||||
NoteOff 0.075593 2 62 0
|
||||
NoteOn 0.030875 2 62 95
|
||||
NoteOff 0.459440 2 62 0
|
||||
NoteOn 0.000315 2 69 69
|
||||
NoteOff 0.139851 2 69 0
|
||||
NoteOn 0.292059 2 74 79
|
||||
NoteOff 0.069197 2 74 0
|
||||
NoteOn 0.046664 2 74 71
|
||||
NoteOff 0.062959 2 74 0
|
||||
NoteOn 0.025777 2 74 47
|
||||
NoteOff 0.037024 2 74 0
|
||||
NoteOn 0.065524 2 74 63
|
||||
NoteOff 0.059605 2 74 0
|
||||
NoteOn 0.019622 2 74 47
|
||||
NoteOff 0.039886 2 74 0
|
||||
NoteOn 0.052080 2 74 67
|
||||
NoteOff 0.061615 2 74 0
|
||||
NoteOn 0.021743 2 74 53
|
||||
NoteOff 0.042091 2 74 0
|
||||
NoteOn 0.056058 2 74 69
|
||||
NoteOff 0.122627 2 74 0
|
||||
NoteOn 0.047608 2 74 87
|
||||
NoteOff 0.128503 2 74 0
|
||||
NoteOn 0.187575 2 74 79
|
||||
NoteOff 0.113216 2 74 0
|
||||
NoteOn 0.055912 2 73 82
|
||||
NoteOff 0.145445 2 73 0
|
||||
NoteOn 0.104378 2 73 73
|
||||
NoteOff 0.120442 2 73 0
|
||||
NoteOn 0.047541 2 69 73
|
||||
NoteOff 0.151890 2 69 0
|
||||
NoteOn 0.098655 2 69 64
|
||||
NoteOff 0.137789 2 69 0
|
||||
NoteOn 0.042621 2 71 76
|
||||
NoteOff 0.171097 2 71 0
|
||||
NoteOn 0.081635 2 71 61
|
||||
NoteOff 0.073859 2 71 0
|
||||
NoteOn 0.110418 2 66 69
|
||||
NoteOff 0.304332 2 66 0
|
||||
NoteOn 0.119942 2 66 69
|
||||
NoteOff 0.057357 2 66 0
|
||||
NoteOn 0.034674 2 66 60
|
||||
NoteOff 0.056795 2 66 0
|
||||
NoteOn 0.018853 2 66 76
|
||||
NoteOff 0.061343 2 66 0
|
||||
NoteOn 0.048614 2 66 67
|
||||
NoteOff 0.058950 2 66 0
|
||||
NoteOn 0.008595 2 66 63
|
||||
NoteOff 0.057296 2 66 0
|
||||
NoteOn 0.036486 2 66 67
|
||||
NoteOff 0.125570 2 66 0
|
||||
NoteOn 0.055182 2 66 82
|
||||
NoteOff 0.079954 2 66 0
|
||||
NoteOn 0.021852 2 66 64
|
||||
NoteOff 0.085418 2 66 0
|
||||
NoteOn 0.065201 2 64 79
|
||||
NoteOff 0.070529 2 64 0
|
||||
NoteOn 0.055850 2 66 76
|
||||
NoteOff 0.080037 2 66 0
|
||||
NoteOn 0.047400 2 64 73
|
||||
NoteOff 0.079393 2 64 0
|
||||
NoteOn 0.075934 2 62 76
|
||||
NoteOff 0.073956 2 62 0
|
||||
NoteOn 0.038639 2 62 69
|
||||
NoteOff 0.125310 2 62 0
|
||||
NoteOn 0.067131 2 62 67
|
||||
NoteOff 0.114670 2 62 0
|
||||
NoteOn 0.053501 2 62 62
|
||||
NoteOff 0.058095 2 62 0
|
||||
NoteOn 0.017163 2 62 47
|
||||
NoteOff 0.056632 2 62 0
|
||||
NoteOn 0.023810 2 62 64
|
||||
NoteOff 0.070499 2 62 0
|
||||
NoteOn 0.018403 2 62 64
|
||||
NoteOff 0.044563 2 62 0
|
||||
NoteOn 0.038905 2 62 64
|
||||
NoteOff 0.128219 2 62 0
|
||||
NoteOn 0.020654 2 62 79
|
||||
NoteOff 0.100199 2 62 0
|
||||
NoteOn 0.119351 2 66 69
|
||||
NoteOff 0.140313 2 66 0
|
||||
NoteOn 0.023378 2 64 67
|
||||
NoteOff 0.157359 2 64 0
|
||||
NoteOn 0.103959 2 62 69
|
||||
NoteOff 0.072433 2 62 0
|
||||
NoteOn 0.089338 2 62 63
|
||||
NoteOff 0.067472 2 62 0
|
||||
NoteOn 0.131003 2 62 63
|
||||
NoteOff 0.092003 2 62 0
|
||||
NoteOn 0.084592 2 62 64
|
||||
NoteOff 0.156367 2 62 0
|
||||
NoteOn 0.024942 2 62 69
|
||||
NoteOff 0.154966 2 62 0
|
||||
NoteOn 0.023168 2 62 67
|
||||
NoteOff 0.402274 2 62 0
|
||||
NoteOn 0.151088 2 69 82
|
||||
NoteOff 0.295762 2 69 0
|
||||
NoteOn 0.144298 2 74 67
|
||||
NoteOff 0.064684 2 74 0
|
||||
NoteOn 0.046916 2 74 61
|
||||
NoteOff 0.061961 2 74 0
|
||||
NoteOn 0.013175 2 74 58
|
||||
NoteOff 0.063742 2 74 0
|
||||
NoteOn 0.063079 2 74 64
|
||||
NoteOff 0.115461 2 74 0
|
||||
NoteOn 0.066345 2 74 64
|
||||
NoteOff 0.104482 2 74 0
|
||||
NoteOn 0.058225 2 74 69
|
||||
NoteOff 0.137897 2 74 0
|
||||
NoteOn 0.028045 2 74 82
|
||||
NoteOff 0.227867 2 74 0
|
||||
NoteOn 0.089793 2 74 73
|
||||
NoteOff 0.137043 2 74 0
|
||||
NoteOn 0.027024 2 73 64
|
||||
NoteOff 0.156746 2 73 0
|
||||
NoteOn 0.091269 2 73 73
|
||||
NoteOff 0.144116 2 73 0
|
||||
NoteOn 0.040937 2 69 76
|
||||
NoteOff 0.131683 2 69 0
|
||||
NoteOn 0.111516 2 69 63
|
||||
NoteOff 0.119809 2 69 0
|
||||
NoteOn 0.055603 2 71 69
|
||||
NoteOff 0.151398 2 71 0
|
||||
NoteOn 0.092930 2 71 61
|
||||
NoteOff 0.077496 2 71 0
|
||||
NoteOn 0.108207 2 66 73
|
||||
NoteOff 0.268736 2 66 0
|
||||
NoteOn 0.105231 2 66 82
|
||||
NoteOff 0.068718 2 66 0
|
||||
NoteOn 0.052997 2 66 69
|
||||
NoteOff 0.121595 2 66 0
|
||||
NoteOn 0.089177 2 66 58
|
||||
NoteOff 0.106939 2 66 0
|
||||
NoteOn 0.049675 2 66 67
|
||||
NoteOff 0.145059 2 66 0
|
||||
NoteOn 0.033535 2 66 24
|
||||
NoteOff 0.169419 2 66 0
|
||||
NoteOn 0.058897 2 66 63
|
||||
NoteOff 0.086285 2 66 0
|
||||
NoteOn 0.041606 2 64 76
|
||||
NoteOff 0.084153 2 64 0
|
||||
NoteOn 0.044987 2 66 69
|
||||
NoteOff 0.100239 2 66 0
|
||||
NoteOn 0.022854 2 64 76
|
||||
NoteOff 0.075048 2 64 0
|
||||
NoteOn 0.065983 2 62 67
|
||||
NoteOff 0.081468 2 62 0
|
||||
NoteOn 0.040989 2 62 71
|
||||
NoteOff 0.134240 2 62 0
|
||||
NoteOn 0.062401 2 62 61
|
||||
NoteOff 0.119152 2 62 0
|
||||
NoteOn 0.050401 2 62 64
|
||||
NoteOff 0.128506 2 62 0
|
||||
NoteOn 0.030134 2 62 64
|
||||
NoteOff 0.142160 2 62 0
|
||||
NoteOn 0.037510 2 62 79
|
||||
NoteOff 0.239364 2 62 0
|
||||
NoteOn 0.018231 2 66 73
|
||||
NoteOff 0.131528 2 66 0
|
||||
NoteOn 0.042607 2 64 76
|
||||
NoteOff 0.149396 2 64 0
|
||||
NoteOn 0.089318 2 62 73
|
||||
NoteOff 0.087485 2 62 0
|
||||
NoteOn 0.085324 2 62 73
|
||||
NoteOff 0.072863 2 62 0
|
||||
NoteOn 0.023103 2 62 73
|
||||
NoteOff 0.085817 2 62 0
|
||||
NoteOn 0.021983 2 62 64
|
||||
NoteOff 0.061305 2 62 0
|
||||
NoteOn 0.036091 2 62 61
|
||||
NoteOff 0.070809 2 62 0
|
||||
NoteOn 0.011382 2 62 58
|
||||
NoteOff 0.060215 2 62 0
|
||||
NoteOn 0.027180 2 62 61
|
||||
NoteOff 0.075393 2 62 0
|
||||
NoteOn 0.025560 2 62 29
|
||||
NoteOff 0.038858 2 62 0
|
||||
NoteOn 0.030691 2 62 64
|
||||
NoteOff 0.129305 2 62 0
|
||||
NoteOn 0.021792 2 62 76
|
||||
NoteOff 0.075593 2 62 0
|
||||
NoteOn 0.030875 2 62 95
|
||||
NoteOff 0.459440 2 62 0
|
||||
|
||||
@@ -1,105 +1,105 @@
|
||||
/* Howdy!!!! SKINI0.9 Test Score ***********/
|
||||
|
||||
// First a pretty good player
|
||||
PlayerSkill 0.000000 2 100
|
||||
NoteOn 0.000081 2 69 64
|
||||
NoteOff 0.220735 2 69 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.244988 2 74 69
|
||||
NoteOff 1.085355 2 74 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.133034 2 74 58
|
||||
NoteOff 0.121377 2 74 0
|
||||
NoteOn 0.025178 2 73 56
|
||||
NoteOff 0.204028 2 73 0
|
||||
NoteOn 0.070314 2 73 58
|
||||
NoteOff 0.150998 2 73 0
|
||||
NoteOn 0.029853 2 69 63
|
||||
NoteOff 0.152847 2 69 0
|
||||
NoteOn 0.097649 2 69 58
|
||||
NoteOff 0.140495 2 69 0
|
||||
NoteOn 0.052114 2 71 69
|
||||
NoteOff 0.177446 2 71 0
|
||||
NoteOn 0.084674 2 71 53
|
||||
NoteOff 0.084189 2 71 0
|
||||
NoteOn 0.107113 2 66 82
|
||||
NoteOff 0.345345 2 66 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.114209 2 66 69
|
||||
NoteOff 0.638118 2 66 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.096405 2 66 61
|
||||
NoteOff 0.134993 2 66 0
|
||||
NoteOn 0.028328 2 64 67
|
||||
NoteOff 0.251752 2 64 0
|
||||
NoteOn 0.052434 2 62 64
|
||||
NoteOff 0.077954 2 62 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.069474 2 62 69
|
||||
NoteOff 1.132502 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.043887 2 66 69
|
||||
NoteOff 0.096938 2 66 0
|
||||
NoteOn 0.046985 2 64 71
|
||||
NoteOff 0.085443 2 64 0
|
||||
NoteOn 0.055538 2 66 63
|
||||
NoteOff 0.105148 2 66 0
|
||||
NoteOn 0.021553 2 64 62
|
||||
NoteOff 0.103749 2 64 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.054633 2 62 67
|
||||
NoteOff 1.033837 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
|
||||
// Now a really bad player
|
||||
PlayerSkill 0.000000 2 10
|
||||
NoteOn 0.235617 2 69 69
|
||||
NoteOff 0.316772 2 69 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.145871 2 74 64
|
||||
NoteOff 1.100060 2 74 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.115729 2 74 58
|
||||
NoteOff 0.166520 2 74 0
|
||||
NoteOn 0.007216 2 73 61
|
||||
NoteOff 0.192106 2 73 0
|
||||
NoteOn 0.067405 2 73 62
|
||||
NoteOff 0.160641 2 73 0
|
||||
NoteOn 0.015116 2 69 58
|
||||
NoteOff 0.176983 2 69 0
|
||||
NoteOn 0.083744 2 69 62
|
||||
NoteOff 0.155400 2 69 0
|
||||
NoteOn 0.020502 2 71 69
|
||||
NoteOff 0.187489 2 71 0
|
||||
NoteOn 0.076011 2 71 56
|
||||
NoteOff 0.094456 2 71 0
|
||||
NoteOn 0.094632 2 66 73
|
||||
NoteOff 0.303251 2 66 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.136058 2 66 69
|
||||
NoteOff 0.601147 2 66 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.073985 2 66 56
|
||||
NoteOff 0.145772 2 66 0
|
||||
NoteOn 0.028922 2 64 64
|
||||
NoteOff 0.082327 2 64 0
|
||||
NoteOn 0.047864 2 66 61
|
||||
NoteOff 0.099460 2 66 0
|
||||
NoteOn 0.020486 2 64 40
|
||||
NoteOff 0.131447 2 64 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.042691 2 62 71
|
||||
NoteOff 1.131626 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.040285 2 66 51
|
||||
NoteOff 0.141532 2 66 0
|
||||
NoteOn 0.016442 2 64 64
|
||||
NoteOff 0.195371 2 64 0
|
||||
NoteOn 0.073368 2 62 67
|
||||
NoteOff 0.098382 2 62 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.082045 2 62 69
|
||||
NoteOff 0.796526 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.079242 2 62 64
|
||||
NoteOff 0.473653 2 62 0
|
||||
/* Howdy!!!! SKINI0.9 Test Score ***********/
|
||||
|
||||
// First a pretty good player
|
||||
PlayerSkill 0.000000 2 100
|
||||
NoteOn 0.000081 2 69 64
|
||||
NoteOff 0.220735 2 69 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.244988 2 74 69
|
||||
NoteOff 1.085355 2 74 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.133034 2 74 58
|
||||
NoteOff 0.121377 2 74 0
|
||||
NoteOn 0.025178 2 73 56
|
||||
NoteOff 0.204028 2 73 0
|
||||
NoteOn 0.070314 2 73 58
|
||||
NoteOff 0.150998 2 73 0
|
||||
NoteOn 0.029853 2 69 63
|
||||
NoteOff 0.152847 2 69 0
|
||||
NoteOn 0.097649 2 69 58
|
||||
NoteOff 0.140495 2 69 0
|
||||
NoteOn 0.052114 2 71 69
|
||||
NoteOff 0.177446 2 71 0
|
||||
NoteOn 0.084674 2 71 53
|
||||
NoteOff 0.084189 2 71 0
|
||||
NoteOn 0.107113 2 66 82
|
||||
NoteOff 0.345345 2 66 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.114209 2 66 69
|
||||
NoteOff 0.638118 2 66 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.096405 2 66 61
|
||||
NoteOff 0.134993 2 66 0
|
||||
NoteOn 0.028328 2 64 67
|
||||
NoteOff 0.251752 2 64 0
|
||||
NoteOn 0.052434 2 62 64
|
||||
NoteOff 0.077954 2 62 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.069474 2 62 69
|
||||
NoteOff 1.132502 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.043887 2 66 69
|
||||
NoteOff 0.096938 2 66 0
|
||||
NoteOn 0.046985 2 64 71
|
||||
NoteOff 0.085443 2 64 0
|
||||
NoteOn 0.055538 2 66 63
|
||||
NoteOff 0.105148 2 66 0
|
||||
NoteOn 0.021553 2 64 62
|
||||
NoteOff 0.103749 2 64 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.054633 2 62 67
|
||||
NoteOff 1.033837 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
|
||||
// Now a really bad player
|
||||
PlayerSkill 0.000000 2 10
|
||||
NoteOn 0.235617 2 69 69
|
||||
NoteOff 0.316772 2 69 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.145871 2 74 64
|
||||
NoteOff 1.100060 2 74 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.115729 2 74 58
|
||||
NoteOff 0.166520 2 74 0
|
||||
NoteOn 0.007216 2 73 61
|
||||
NoteOff 0.192106 2 73 0
|
||||
NoteOn 0.067405 2 73 62
|
||||
NoteOff 0.160641 2 73 0
|
||||
NoteOn 0.015116 2 69 58
|
||||
NoteOff 0.176983 2 69 0
|
||||
NoteOn 0.083744 2 69 62
|
||||
NoteOff 0.155400 2 69 0
|
||||
NoteOn 0.020502 2 71 69
|
||||
NoteOff 0.187489 2 71 0
|
||||
NoteOn 0.076011 2 71 56
|
||||
NoteOff 0.094456 2 71 0
|
||||
NoteOn 0.094632 2 66 73
|
||||
NoteOff 0.303251 2 66 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.136058 2 66 69
|
||||
NoteOff 0.601147 2 66 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.073985 2 66 56
|
||||
NoteOff 0.145772 2 66 0
|
||||
NoteOn 0.028922 2 64 64
|
||||
NoteOff 0.082327 2 64 0
|
||||
NoteOn 0.047864 2 66 61
|
||||
NoteOff 0.099460 2 66 0
|
||||
NoteOn 0.020486 2 64 40
|
||||
NoteOff 0.131447 2 64 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.042691 2 62 71
|
||||
NoteOff 1.131626 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.040285 2 66 51
|
||||
NoteOff 0.141532 2 66 0
|
||||
NoteOn 0.016442 2 64 64
|
||||
NoteOff 0.195371 2 64 0
|
||||
NoteOn 0.073368 2 62 67
|
||||
NoteOff 0.098382 2 62 0
|
||||
Strumming 0.000000 2 127
|
||||
NoteOn 0.082045 2 62 69
|
||||
NoteOff 0.796526 2 62 0
|
||||
NotStrumming 0.000000 2 0
|
||||
NoteOn 0.079242 2 62 64
|
||||
NoteOff 0.473653 2 62 0
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
ControlChange 0.000000 1 4 22.000000
|
||||
NoteOn 0.000000 1 46 64.000000
|
||||
ControlChange 0.200000 1 4 8.000000
|
||||
NoteOff 0.800000 1 46 64.500000
|
||||
NoteOn 0.000000 1 51 74.000000
|
||||
NoteOff 0.750000 1 51 74.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 0.250000 1 53 84.500000
|
||||
NoteOn 0.000000 1 54 84.000000
|
||||
ControlChange 0.000000 1 4 10.000000
|
||||
NoteOff 1.500000 1 54 84.500000
|
||||
NoteOn 0.000000 1 54 84.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
NoteOff 0.500000 1 54 84.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 0.500000 1 53 84.500000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 84.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 4.000000
|
||||
NoteOff 0.500000 1 53 84.500000
|
||||
NoteOn 0.000000 1 54 94.000000
|
||||
NoteOff 0.500000 1 54 94.500000
|
||||
NoteOn 0.000000 1 51 74.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 1.000000 1 51 74.500000
|
||||
NoteOn 0.000000 1 46 32.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
ControlChange 0.000000 1 1 40.000000
|
||||
NoteOff 1.950023 1 46 64.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
ControlChange 0.000000 1 4 22.000000
|
||||
NoteOn 0.000000 1 46 64.000000
|
||||
ControlChange 0.200000 1 4 8.000000
|
||||
NoteOff 0.800000 1 46 64.500000
|
||||
NoteOn 0.000000 1 51 74.000000
|
||||
NoteOff 0.750000 1 51 74.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 0.250000 1 53 84.500000
|
||||
NoteOn 0.000000 1 54 84.000000
|
||||
ControlChange 0.000000 1 4 10.000000
|
||||
NoteOff 1.500000 1 54 84.500000
|
||||
NoteOn 0.000000 1 54 84.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
NoteOff 0.500000 1 54 84.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 0.500000 1 53 84.500000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 84.500000
|
||||
NoteOn 0.000000 1 53 84.000000
|
||||
ControlChange 0.000000 1 4 4.000000
|
||||
NoteOff 0.500000 1 53 84.500000
|
||||
NoteOn 0.000000 1 54 94.000000
|
||||
NoteOff 0.500000 1 54 94.500000
|
||||
NoteOn 0.000000 1 51 74.000000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOff 1.000000 1 51 74.500000
|
||||
NoteOn 0.000000 1 46 32.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
ControlChange 0.000000 1 1 40.000000
|
||||
NoteOff 1.950023 1 46 64.500000
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 1.000000 2 55 0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 0.700000 2 55 0
|
||||
NoteOn 0.000082 2 62 82
|
||||
NoteOff 0.600000 2 62 0
|
||||
NoteOn 0.000082 2 62 82
|
||||
NoteOff 1.000000 2 62 0
|
||||
NoteOn 0.000082 2 69 82
|
||||
NoteOff 0.500000 2 69 0
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 50
|
||||
NoteOn 0.000000 2 69 82
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 22
|
||||
ControlChange 0.100000 1 1 12
|
||||
NoteOn 0.000000 2 69 82
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 50
|
||||
ControlChange 0.100000 1 1 60
|
||||
ControlChange 0.100000 1 1 50
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 6
|
||||
NoteOn 0.000082 2 69 82
|
||||
NoteOff 1.000000 2 69 0
|
||||
NoteOn 0.000082 2 76 82
|
||||
NoteOff 0.800000 2 76 0
|
||||
NoteOn 0.000082 2 76 82
|
||||
NoteOff 0.800000 2 76 0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 79 82
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 1.000000 2 55 0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 0.700000 2 55 0
|
||||
NoteOn 0.000082 2 62 82
|
||||
NoteOff 0.600000 2 62 0
|
||||
NoteOn 0.000082 2 62 82
|
||||
NoteOff 1.000000 2 62 0
|
||||
NoteOn 0.000082 2 69 82
|
||||
NoteOff 0.500000 2 69 0
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 50
|
||||
NoteOn 0.000000 2 69 82
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 22
|
||||
ControlChange 0.100000 1 1 12
|
||||
NoteOn 0.000000 2 69 82
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 50
|
||||
ControlChange 0.100000 1 1 60
|
||||
ControlChange 0.100000 1 1 50
|
||||
ControlChange 0.100000 1 1 40
|
||||
ControlChange 0.100000 1 1 30
|
||||
ControlChange 0.100000 1 1 20
|
||||
ControlChange 0.100000 1 1 10
|
||||
ControlChange 0.100000 1 1 6
|
||||
NoteOn 0.000082 2 69 82
|
||||
NoteOff 1.000000 2 69 0
|
||||
NoteOn 0.000082 2 76 82
|
||||
NoteOff 0.800000 2 76 0
|
||||
NoteOn 0.000082 2 76 82
|
||||
NoteOff 0.800000 2 76 0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 79 82
|
||||
|
||||
@@ -1,107 +1,107 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.200 1 91 63.500000
|
||||
|
||||
StickHardness 0.000 1 30
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.200 1 67 63.500000
|
||||
|
||||
StickHardness 0.000 1 120
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.200 1 48 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.200 1 67 63.500000
|
||||
|
||||
StickHardness 0.000 1 64
|
||||
NoteOn 0.001 1 93 88.899998
|
||||
NoteOff 0.100 1 93 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.100 1 91 63.500000
|
||||
NoteOn 0.001 1 89 88.899998
|
||||
NoteOff 0.100 1 89 63.500000
|
||||
NoteOn 0.001 1 88 88.899998
|
||||
NoteOff 0.100 1 88 63.500000
|
||||
NoteOn 0.001 1 86 88.899998
|
||||
NoteOff 0.100 1 86 63.500000
|
||||
NoteOn 0.001 1 84 88.899998
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.001 1 83 88.899998
|
||||
NoteOff 0.100 1 83 63.500000
|
||||
NoteOn 0.001 1 79 88.899998
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.200 1 91 63.500000
|
||||
|
||||
NoteOn 0.001 1 84 10.0
|
||||
NoteOff 0.050 1 84 63.500000
|
||||
NoteOn 0.001 1 96 20.0
|
||||
NoteOff 0.040 1 96 63.500000
|
||||
NoteOn 0.001 1 84 30.0
|
||||
NoteOff 0.040 1 84 63.500000
|
||||
NoteOn 0.001 1 96 40.0
|
||||
NoteOff 0.045 1 96 63.500000
|
||||
NoteOn 0.001 1 84 50.0
|
||||
NoteOff 0.050 1 84 63.500000
|
||||
NoteOn 0.001 1 96 60.0
|
||||
NoteOff 0.055 1 96 63.500000
|
||||
NoteOn 0.001 1 84 70.0
|
||||
NoteOff 0.045 1 84 63.500000
|
||||
NoteOn 0.001 1 96 80.0
|
||||
NoteOff 0.040 1 96 63.500000
|
||||
NoteOn 0.001 1 84 90.0
|
||||
NoteOff 0.045 1 84 63.500000
|
||||
NoteOn 0.001 1 96 100.0
|
||||
NoteOff 0.050 1 96 63.500000
|
||||
NoteOn 0.001 1 84 110.0
|
||||
NoteOff 0.055 1 84 63.500000
|
||||
NoteOn 0.001 1 96 120.0
|
||||
NoteOff 0.300 1 96 63.500000
|
||||
|
||||
StickHardness 0.000 1 64
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 2.000 1 48 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.200 1 91 63.500000
|
||||
|
||||
StickHardness 0.000 1 30
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.200 1 67 63.500000
|
||||
|
||||
StickHardness 0.000 1 120
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.200 1 48 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.200 1 67 63.500000
|
||||
|
||||
StickHardness 0.000 1 64
|
||||
NoteOn 0.001 1 93 88.899998
|
||||
NoteOff 0.100 1 93 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.100 1 91 63.500000
|
||||
NoteOn 0.001 1 89 88.899998
|
||||
NoteOff 0.100 1 89 63.500000
|
||||
NoteOn 0.001 1 88 88.899998
|
||||
NoteOff 0.100 1 88 63.500000
|
||||
NoteOn 0.001 1 86 88.899998
|
||||
NoteOff 0.100 1 86 63.500000
|
||||
NoteOn 0.001 1 84 88.899998
|
||||
NoteOff 0.100 1 84 63.500000
|
||||
NoteOn 0.001 1 83 88.899998
|
||||
NoteOff 0.100 1 83 63.500000
|
||||
NoteOn 0.001 1 79 88.899998
|
||||
NoteOff 0.100 1 79 63.500000
|
||||
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 0.100 1 48 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 67 88.899998
|
||||
NoteOff 0.100 1 67 63.500000
|
||||
NoteOn 0.001 1 76 88.899998
|
||||
NoteOff 0.100 1 76 63.500000
|
||||
NoteOn 0.001 1 72 88.899998
|
||||
NoteOff 0.100 1 72 63.500000
|
||||
NoteOn 0.001 1 55 88.899998
|
||||
NoteOff 0.100 1 55 63.500000
|
||||
NoteOn 0.001 1 91 88.899998
|
||||
NoteOff 0.200 1 91 63.500000
|
||||
|
||||
NoteOn 0.001 1 84 10.0
|
||||
NoteOff 0.050 1 84 63.500000
|
||||
NoteOn 0.001 1 96 20.0
|
||||
NoteOff 0.040 1 96 63.500000
|
||||
NoteOn 0.001 1 84 30.0
|
||||
NoteOff 0.040 1 84 63.500000
|
||||
NoteOn 0.001 1 96 40.0
|
||||
NoteOff 0.045 1 96 63.500000
|
||||
NoteOn 0.001 1 84 50.0
|
||||
NoteOff 0.050 1 84 63.500000
|
||||
NoteOn 0.001 1 96 60.0
|
||||
NoteOff 0.055 1 96 63.500000
|
||||
NoteOn 0.001 1 84 70.0
|
||||
NoteOff 0.045 1 84 63.500000
|
||||
NoteOn 0.001 1 96 80.0
|
||||
NoteOff 0.040 1 96 63.500000
|
||||
NoteOn 0.001 1 84 90.0
|
||||
NoteOff 0.045 1 84 63.500000
|
||||
NoteOn 0.001 1 96 100.0
|
||||
NoteOff 0.050 1 96 63.500000
|
||||
NoteOn 0.001 1 84 110.0
|
||||
NoteOff 0.055 1 84 63.500000
|
||||
NoteOn 0.001 1 96 120.0
|
||||
NoteOff 0.300 1 96 63.500000
|
||||
|
||||
StickHardness 0.000 1 64
|
||||
NoteOn 0.001 1 48 88.899998
|
||||
NoteOff 2.000 1 48 63.500000
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 100
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 80
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 60
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 40
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 20
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 10
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 100
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 80
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 60
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 40
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 20
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
StickHardness 0.000000 1 10
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
NoteOn 0.050000 1 32 88.899998
|
||||
|
||||
@@ -1,58 +1,58 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 67 127.000000
|
||||
NoteOff 0.142494 1 67 63.500000
|
||||
NoteOn 0.007528 1 67 127.000000
|
||||
NoteOff 0.149977 1 67 63.500000
|
||||
NoteOn 0.149977 1 67 127.000000
|
||||
NoteOff 0.285034 1 67 63.500000
|
||||
NoteOn 0.015011 1 69 127.000000
|
||||
NoteOff 0.142494 1 69 63.500000
|
||||
NoteOn 0.007528 1 67 127.000000
|
||||
NoteOff 0.285034 1 67 63.500000
|
||||
NoteOn 0.015011 1 64 127.000000
|
||||
NoteOff 1.140000 1 64 63.500000
|
||||
NoteOn 0.060000 1 64 127.000000
|
||||
NoteOff 0.074966 1 64 63.500000
|
||||
NoteOn 0.074966 1 64 127.000000
|
||||
NoteOff 0.149977 1 64 63.500000
|
||||
NoteOn 0.149977 1 64 127.000000
|
||||
NoteOff 0.285034 1 64 63.500000
|
||||
NoteOn 0.015011 1 62 127.000000
|
||||
NoteOff 0.074966 1 62 63.500000
|
||||
NoteOn 0.074966 1 60 127.000000
|
||||
NoteOff 0.149977 1 60 63.500000
|
||||
NoteOn 0.149977 1 57 127.000000
|
||||
NoteOff 1.140000 1 57 63.500000
|
||||
NoteOn 0.060000 1 79 127.000000
|
||||
NoteOff 0.142494 1 79 63.500000
|
||||
NoteOn 0.007528 1 79 127.000000
|
||||
NoteOff 0.149977 1 79 63.500000
|
||||
NoteOn 0.149977 1 79 127.000000
|
||||
NoteOff 0.285034 1 79 63.500000
|
||||
NoteOn 0.015011 1 81 127.000000
|
||||
NoteOff 0.142494 1 81 63.500000
|
||||
NoteOn 0.007528 1 79 127.000000
|
||||
NoteOff 0.285034 1 79 63.500000
|
||||
NoteOn 0.015011 1 76 127.000000
|
||||
NoteOff 1.140000 1 76 63.500000
|
||||
NoteOn 0.060000 1 76 127.000000
|
||||
NoteOff 0.074966 1 76 63.500000
|
||||
NoteOn 0.074966 1 76 127.000000
|
||||
NoteOff 0.149977 1 76 63.500000
|
||||
NoteOn 0.149977 1 76 127.000000
|
||||
NoteOff 0.285034 1 76 63.500000
|
||||
NoteOn 0.015011 1 74 127.000000
|
||||
NoteOff 0.074966 1 74 63.500000
|
||||
NoteOn 0.074966 1 72 127.000000
|
||||
NoteOff 0.149977 1 72 63.500000
|
||||
NoteOn 0.149977 1 69 127.000000
|
||||
NoteOff 0.449977 1 69 63.500000
|
||||
NoteOn 0.449977 1 79 127.000000
|
||||
NoteOff 0.149977 1 79 63.500000
|
||||
NoteOn 0.149977 1 81 127.000000
|
||||
NoteOff 0.855011 1 81 63.500000
|
||||
NoteOn 0.045034 1 91 127.000000
|
||||
NoteOff 0.149977 1 91 63.500000
|
||||
NoteOn 0.149977 1 93 127.000000
|
||||
NoteOff 0.950023 1 93 63.500000
|
||||
NoteOff 0.050023 1 93 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 67 127.000000
|
||||
NoteOff 0.142494 1 67 63.500000
|
||||
NoteOn 0.007528 1 67 127.000000
|
||||
NoteOff 0.149977 1 67 63.500000
|
||||
NoteOn 0.149977 1 67 127.000000
|
||||
NoteOff 0.285034 1 67 63.500000
|
||||
NoteOn 0.015011 1 69 127.000000
|
||||
NoteOff 0.142494 1 69 63.500000
|
||||
NoteOn 0.007528 1 67 127.000000
|
||||
NoteOff 0.285034 1 67 63.500000
|
||||
NoteOn 0.015011 1 64 127.000000
|
||||
NoteOff 1.140000 1 64 63.500000
|
||||
NoteOn 0.060000 1 64 127.000000
|
||||
NoteOff 0.074966 1 64 63.500000
|
||||
NoteOn 0.074966 1 64 127.000000
|
||||
NoteOff 0.149977 1 64 63.500000
|
||||
NoteOn 0.149977 1 64 127.000000
|
||||
NoteOff 0.285034 1 64 63.500000
|
||||
NoteOn 0.015011 1 62 127.000000
|
||||
NoteOff 0.074966 1 62 63.500000
|
||||
NoteOn 0.074966 1 60 127.000000
|
||||
NoteOff 0.149977 1 60 63.500000
|
||||
NoteOn 0.149977 1 57 127.000000
|
||||
NoteOff 1.140000 1 57 63.500000
|
||||
NoteOn 0.060000 1 79 127.000000
|
||||
NoteOff 0.142494 1 79 63.500000
|
||||
NoteOn 0.007528 1 79 127.000000
|
||||
NoteOff 0.149977 1 79 63.500000
|
||||
NoteOn 0.149977 1 79 127.000000
|
||||
NoteOff 0.285034 1 79 63.500000
|
||||
NoteOn 0.015011 1 81 127.000000
|
||||
NoteOff 0.142494 1 81 63.500000
|
||||
NoteOn 0.007528 1 79 127.000000
|
||||
NoteOff 0.285034 1 79 63.500000
|
||||
NoteOn 0.015011 1 76 127.000000
|
||||
NoteOff 1.140000 1 76 63.500000
|
||||
NoteOn 0.060000 1 76 127.000000
|
||||
NoteOff 0.074966 1 76 63.500000
|
||||
NoteOn 0.074966 1 76 127.000000
|
||||
NoteOff 0.149977 1 76 63.500000
|
||||
NoteOn 0.149977 1 76 127.000000
|
||||
NoteOff 0.285034 1 76 63.500000
|
||||
NoteOn 0.015011 1 74 127.000000
|
||||
NoteOff 0.074966 1 74 63.500000
|
||||
NoteOn 0.074966 1 72 127.000000
|
||||
NoteOff 0.149977 1 72 63.500000
|
||||
NoteOn 0.149977 1 69 127.000000
|
||||
NoteOff 0.449977 1 69 63.500000
|
||||
NoteOn 0.449977 1 79 127.000000
|
||||
NoteOff 0.149977 1 79 63.500000
|
||||
NoteOn 0.149977 1 81 127.000000
|
||||
NoteOff 0.855011 1 81 63.500000
|
||||
NoteOn 0.045034 1 91 127.000000
|
||||
NoteOff 0.149977 1 91 63.500000
|
||||
NoteOn 0.149977 1 93 127.000000
|
||||
NoteOff 0.950023 1 93 63.500000
|
||||
NoteOff 0.050023 1 93 63.500000
|
||||
|
||||
@@ -1,85 +1,85 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 67 63.500000
|
||||
NoteOn 0.200000 1 64 101.600002
|
||||
NoteOn 0.200000 1 64 101.600002
|
||||
NoteOn 0.200000 1 67 101.600002
|
||||
NoteOn 0.200000 1 67 76.200003
|
||||
NoteOn 0.200000 1 64 38.100002
|
||||
NoteOn 0.300000 1 67 101.600002
|
||||
NoteOn 0.300000 1 67 127.000000
|
||||
NoteOn 0.200000 1 64 76.200003
|
||||
NoteOn 0.200000 1 67 114.299997
|
||||
NoteOn 0.200000 1 69 127.000000
|
||||
NoteOn 0.100000 1 67 50.800001
|
||||
NoteOn 0.100000 1 64 88.899998
|
||||
NoteOn 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 64 76.200003
|
||||
NoteOn 0.600000 1 79 127.000000
|
||||
NoteOn 0.200000 1 76 127.000000
|
||||
NoteOn 0.200000 1 76 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.100000 1 81 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.100000 1 76 127.000000
|
||||
NoteOn 0.100000 1 74 127.000000
|
||||
NoteOn 0.100000 1 76 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.200000 1 50 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.200000 1 50 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 69 127.000000
|
||||
NoteOn 0.100000 1 72 127.000000
|
||||
|
||||
NoteOn 0.200000 1 82 127.000000
|
||||
NoteOn 0.200000 1 82 127.000000
|
||||
NoteOn 0.200000 1 90 100.000000
|
||||
NoteOn 0.200000 1 90 100.000000
|
||||
NoteOn 0.200000 1 82 110.000000
|
||||
NoteOn 0.300000 1 82 110.000000
|
||||
NoteOn 0.200000 1 82 100.000000
|
||||
NoteOn 0.100000 1 90 100.000000
|
||||
NoteOn 0.200000 1 82 100.000000
|
||||
NoteOn 0.200000 1 82 90.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.200000 1 82 80.000000
|
||||
NoteOn 0.300000 1 90 80.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.100000 1 90 70.000000
|
||||
NoteOn 0.200000 1 82 70.000000
|
||||
NoteOn 0.200000 1 82 70.000000
|
||||
NoteOn 0.200000 1 90 70.000000
|
||||
NoteOn 0.200000 1 90 70.000000
|
||||
NoteOn 0.200000 1 82 60.000000
|
||||
NoteOn 0.300000 1 90 60.000000
|
||||
NoteOn 0.200000 1 82 60.000000
|
||||
NoteOn 0.100000 1 90 60.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.200000 1 90 50.000000
|
||||
NoteOn 0.200000 1 90 50.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.300000 1 82 40.000000
|
||||
NoteOn 0.200000 1 82 40.000000
|
||||
NoteOn 0.100000 1 90 40.000000
|
||||
NoteOn 0.200000 1 82 40.000000
|
||||
NoteOn 0.200000 1 82 30.000000
|
||||
NoteOn 0.200000 1 90 30.000000
|
||||
NoteOn 0.200000 1 90 30.000000
|
||||
NoteOn 0.200000 1 82 20.000000
|
||||
NoteOn 0.300000 1 82 20.000000
|
||||
NoteOn 0.200000 1 82 20.000000
|
||||
NoteOn 0.100000 1 90 10.000000
|
||||
|
||||
NoteOff 0.800000 1 72 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 67 63.500000
|
||||
NoteOn 0.200000 1 64 101.600002
|
||||
NoteOn 0.200000 1 64 101.600002
|
||||
NoteOn 0.200000 1 67 101.600002
|
||||
NoteOn 0.200000 1 67 76.200003
|
||||
NoteOn 0.200000 1 64 38.100002
|
||||
NoteOn 0.300000 1 67 101.600002
|
||||
NoteOn 0.300000 1 67 127.000000
|
||||
NoteOn 0.200000 1 64 76.200003
|
||||
NoteOn 0.200000 1 67 114.299997
|
||||
NoteOn 0.200000 1 69 127.000000
|
||||
NoteOn 0.100000 1 67 50.800001
|
||||
NoteOn 0.100000 1 64 88.899998
|
||||
NoteOn 0.100000 1 62 63.500000
|
||||
NoteOn 0.100000 1 64 76.200003
|
||||
NoteOn 0.600000 1 79 127.000000
|
||||
NoteOn 0.200000 1 76 127.000000
|
||||
NoteOn 0.200000 1 76 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.100000 1 81 127.000000
|
||||
NoteOn 0.200000 1 79 127.000000
|
||||
NoteOn 0.100000 1 76 127.000000
|
||||
NoteOn 0.100000 1 74 127.000000
|
||||
NoteOn 0.100000 1 76 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.200000 1 50 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 45 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 52 127.000000
|
||||
NoteOn 0.200000 1 50 127.000000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOn 0.100000 1 50 127.000000
|
||||
NoteOn 0.100000 1 69 127.000000
|
||||
NoteOn 0.100000 1 72 127.000000
|
||||
|
||||
NoteOn 0.200000 1 82 127.000000
|
||||
NoteOn 0.200000 1 82 127.000000
|
||||
NoteOn 0.200000 1 90 100.000000
|
||||
NoteOn 0.200000 1 90 100.000000
|
||||
NoteOn 0.200000 1 82 110.000000
|
||||
NoteOn 0.300000 1 82 110.000000
|
||||
NoteOn 0.200000 1 82 100.000000
|
||||
NoteOn 0.100000 1 90 100.000000
|
||||
NoteOn 0.200000 1 82 100.000000
|
||||
NoteOn 0.200000 1 82 90.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.200000 1 82 80.000000
|
||||
NoteOn 0.300000 1 90 80.000000
|
||||
NoteOn 0.200000 1 90 80.000000
|
||||
NoteOn 0.100000 1 90 70.000000
|
||||
NoteOn 0.200000 1 82 70.000000
|
||||
NoteOn 0.200000 1 82 70.000000
|
||||
NoteOn 0.200000 1 90 70.000000
|
||||
NoteOn 0.200000 1 90 70.000000
|
||||
NoteOn 0.200000 1 82 60.000000
|
||||
NoteOn 0.300000 1 90 60.000000
|
||||
NoteOn 0.200000 1 82 60.000000
|
||||
NoteOn 0.100000 1 90 60.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.200000 1 90 50.000000
|
||||
NoteOn 0.200000 1 90 50.000000
|
||||
NoteOn 0.200000 1 82 50.000000
|
||||
NoteOn 0.300000 1 82 40.000000
|
||||
NoteOn 0.200000 1 82 40.000000
|
||||
NoteOn 0.100000 1 90 40.000000
|
||||
NoteOn 0.200000 1 82 40.000000
|
||||
NoteOn 0.200000 1 82 30.000000
|
||||
NoteOn 0.200000 1 90 30.000000
|
||||
NoteOn 0.200000 1 90 30.000000
|
||||
NoteOn 0.200000 1 82 20.000000
|
||||
NoteOn 0.300000 1 82 20.000000
|
||||
NoteOn 0.200000 1 82 20.000000
|
||||
NoteOn 0.100000 1 90 10.000000
|
||||
|
||||
NoteOff 0.800000 1 72 63.500000
|
||||
|
||||
@@ -1,221 +1,221 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000327 2 68 64
|
||||
NoteOn 0.011439 2 72 60
|
||||
NoteOn 0.100661 2 69 58
|
||||
NoteOff 0.022910 2 68 0
|
||||
NoteOff 0.087179 2 69 0
|
||||
NoteOff 0.002768 2 72 0
|
||||
NoteOn 0.146276 2 74 60
|
||||
NoteOn 0.007877 2 70 73
|
||||
NoteOff 0.065823 2 74 0
|
||||
NoteOff 0.034091 2 70 0
|
||||
NoteOn 0.071562 2 65 42
|
||||
NoteOff 0.095505 2 65 0
|
||||
NoteOn 0.117222 2 72 36
|
||||
NoteOn 0.003568 2 75 57
|
||||
NoteOff 0.867934 2 72 0
|
||||
NoteOff 0.016747 2 75 0
|
||||
NoteOn 0.001292 2 70 66
|
||||
NoteOn 0.016806 2 74 41
|
||||
NoteOff 0.903721 2 70 0
|
||||
NoteOn 0.002269 2 71 60
|
||||
NoteOff 0.002452 2 74 0
|
||||
NoteOff 0.024367 2 71 0
|
||||
NoteOn 0.573769 2 71 71
|
||||
NoteOn 0.071125 2 72 47
|
||||
NoteOff 0.017603 2 71 0
|
||||
NoteOn 0.099531 2 77 63
|
||||
NoteOff 0.005133 2 72 0
|
||||
NoteOn 0.002825 2 75 57
|
||||
NoteOff 0.051047 2 77 0
|
||||
NoteOn 0.062443 2 72 42
|
||||
NoteOff 0.003421 2 75 0
|
||||
NoteOn 0.004190 2 73 22
|
||||
NoteOff 0.032476 2 73 0
|
||||
NoteOff 0.003357 2 72 0
|
||||
NoteOn 0.003412 2 71 51
|
||||
NoteOff 0.082169 2 71 0
|
||||
NoteOn 0.030527 2 70 64
|
||||
NoteOff 0.068936 2 70 0
|
||||
NoteOn 0.002836 2 68 63
|
||||
NoteOff 0.069395 2 68 0
|
||||
NoteOn 0.024967 2 65 52
|
||||
NoteOff 0.083696 2 65 0
|
||||
NoteOn 0.027784 2 63 69
|
||||
NoteOff 0.102489 2 63 0
|
||||
NoteOn 0.048174 2 60 61
|
||||
NoteOff 0.094914 2 60 0
|
||||
NoteOn 0.076034 2 58 62
|
||||
NoteOff 0.080772 2 58 0
|
||||
NoteOn 0.107826 2 56 73
|
||||
NoteOff 0.114325 2 56 0
|
||||
NoteOn 0.159665 2 53 71
|
||||
NoteOff 0.094385 2 53 0
|
||||
NoteOn 0.218823 2 56 82
|
||||
NoteOff 0.396073 2 56 0
|
||||
NoteOn 0.016601 2 53 79
|
||||
NoteOff 0.590675 2 53 0
|
||||
NoteOn 0.013945 2 41 61
|
||||
NoteOn 0.003797 2 53 48
|
||||
NoteOn 0.749734 2 57 69
|
||||
NoteOn 0.006420 2 63 69
|
||||
NoteOff 0.004025 2 53 0
|
||||
NoteOn 0.001033 2 59 71
|
||||
NoteOff 0.183718 2 59 0
|
||||
ControlChange 0.981560 2 1 1
|
||||
ControlChange 0.014051 2 1 2
|
||||
ControlChange 0.018312 2 1 3
|
||||
ControlChange 0.013991 2 1 4
|
||||
ControlChange 0.014672 2 1 5
|
||||
ControlChange 0.008917 2 1 6
|
||||
ControlChange 0.009676 2 1 7
|
||||
ControlChange 0.009401 2 1 8
|
||||
ControlChange 0.014007 2 1 9
|
||||
ControlChange 0.009716 2 1 10
|
||||
ControlChange 0.009322 2 1 11
|
||||
ControlChange 0.009533 2 1 12
|
||||
ControlChange 0.009596 2 1 13
|
||||
ControlChange 0.009475 2 1 14
|
||||
ControlChange 0.014006 2 1 15
|
||||
ControlChange 0.009540 2 1 16
|
||||
ControlChange 0.010279 2 1 17
|
||||
ControlChange 0.013663 2 1 18
|
||||
ControlChange 0.009675 2 1 19
|
||||
ControlChange 0.009790 2 1 20
|
||||
ControlChange 0.014027 2 1 21
|
||||
ControlChange 0.013973 2 1 22
|
||||
ControlChange 0.009544 2 1 23
|
||||
ControlChange 0.014007 2 1 24
|
||||
ControlChange 0.010353 2 1 25
|
||||
ControlChange 0.010221 2 1 26
|
||||
ControlChange 0.017407 2 1 27
|
||||
ControlChange 0.010088 2 1 28
|
||||
ControlChange 0.009214 2 1 29
|
||||
ControlChange 0.009312 2 1 31
|
||||
ControlChange 0.014216 2 1 32
|
||||
ControlChange 0.004844 2 1 33
|
||||
ControlChange 0.009540 2 1 34
|
||||
ControlChange 0.005039 2 1 35
|
||||
ControlChange 0.009520 2 1 36
|
||||
ControlChange 0.010018 2 1 37
|
||||
ControlChange 0.004663 2 1 38
|
||||
ControlChange 0.009539 2 1 39
|
||||
ControlChange 0.009540 2 1 41
|
||||
ControlChange 0.005017 2 1 42
|
||||
ControlChange 0.009504 2 1 43
|
||||
ControlChange 0.005097 2 1 44
|
||||
ControlChange 0.009941 2 1 45
|
||||
ControlChange 0.004610 2 1 46
|
||||
ControlChange 0.005284 2 1 47
|
||||
ControlChange 0.004821 2 1 48
|
||||
ControlChange 0.005134 2 1 49
|
||||
ControlChange 0.009580 2 1 51
|
||||
ControlChange 0.009561 2 1 52
|
||||
ControlChange 0.019091 2 1 54
|
||||
ControlChange 0.001107 2 1 55
|
||||
ControlChange 0.003756 2 1 56
|
||||
ControlChange 0.009684 2 1 57
|
||||
ControlChange 0.004888 2 1 58
|
||||
ControlChange 0.014042 2 1 59
|
||||
ControlChange 0.009508 2 1 60
|
||||
ControlChange 0.009528 2 1 61
|
||||
ControlChange 0.014029 2 1 62
|
||||
ControlChange 0.009753 2 1 63
|
||||
ControlChange 0.018303 2 1 64
|
||||
ControlChange 0.014210 2 1 65
|
||||
ControlChange 0.027270 2 1 66
|
||||
ControlChange 0.027450 2 1 67
|
||||
ControlChange 0.072463 2 1 68
|
||||
ControlChange 0.040774 2 1 69
|
||||
ControlChange 0.022966 2 1 70
|
||||
ControlChange 0.018511 2 1 71
|
||||
ControlChange 0.023463 2 1 72
|
||||
ControlChange 0.013521 2 1 73
|
||||
ControlChange 0.014483 2 1 74
|
||||
ControlChange 0.013854 2 1 75
|
||||
ControlChange 0.009555 2 1 76
|
||||
ControlChange 0.018674 2 1 77
|
||||
ControlChange 0.009540 2 1 78
|
||||
ControlChange 0.009616 2 1 79
|
||||
ControlChange 0.013994 2 1 80
|
||||
ControlChange 0.014260 2 1 81
|
||||
ControlChange 0.018448 2 1 82
|
||||
ControlChange 0.032114 2 1 83
|
||||
ControlChange 0.058711 2 1 84
|
||||
ControlChange 0.049895 2 1 85
|
||||
ControlChange 0.032104 2 1 86
|
||||
ControlChange 0.036434 2 1 87
|
||||
ControlChange 0.022873 2 1 88
|
||||
ControlChange 0.068096 2 1 89
|
||||
ControlChange 0.112544 2 1 90
|
||||
ControlChange 0.018361 2 1 91
|
||||
ControlChange 0.018528 2 1 92
|
||||
ControlChange 0.018461 2 1 93
|
||||
ControlChange 0.014041 2 1 94
|
||||
ControlChange 0.037010 2 1 95
|
||||
ControlChange 0.008956 2 1 96
|
||||
ControlChange 0.099445 2 1 95
|
||||
ControlChange 0.013834 2 1 94
|
||||
ControlChange 0.009499 2 1 93
|
||||
ControlChange 0.010104 2 1 92
|
||||
ControlChange 0.005027 2 1 91
|
||||
ControlChange 0.010180 2 1 90
|
||||
ControlChange 0.008871 2 1 89
|
||||
ControlChange 0.009510 2 1 88
|
||||
ControlChange 0.005047 2 1 87
|
||||
ControlChange 0.014061 2 1 86
|
||||
ControlChange 0.009903 2 1 85
|
||||
ControlChange 0.009119 2 1 84
|
||||
ControlChange 0.009573 2 1 83
|
||||
ControlChange 0.009491 2 1 82
|
||||
ControlChange 0.005078 2 1 81
|
||||
ControlChange 0.005002 2 1 80
|
||||
ControlChange 0.009607 2 1 78
|
||||
ControlChange 0.005082 2 1 77
|
||||
ControlChange 0.009826 2 1 76
|
||||
ControlChange 0.004771 2 1 75
|
||||
ControlChange 0.005025 2 1 74
|
||||
ControlChange 0.005486 2 1 72
|
||||
ControlChange 0.004613 2 1 71
|
||||
ControlChange 0.005046 2 1 70
|
||||
ControlChange 0.005514 2 1 69
|
||||
ControlChange 0.004571 2 1 67
|
||||
ControlChange 0.005025 2 1 66
|
||||
ControlChange 0.005039 2 1 65
|
||||
ControlChange 0.005033 2 1 63
|
||||
ControlChange 0.005073 2 1 62
|
||||
ControlChange 0.005017 2 1 60
|
||||
ControlChange 0.005073 2 1 59
|
||||
ControlChange 0.005033 2 1 57
|
||||
ControlChange 0.005061 2 1 56
|
||||
ControlChange 0.005057 2 1 54
|
||||
ControlChange 0.005024 2 1 52
|
||||
ControlChange 0.005068 2 1 51
|
||||
ControlChange 0.004988 2 1 49
|
||||
ControlChange 0.005074 2 1 47
|
||||
ControlChange 0.005035 2 1 45
|
||||
ControlChange 0.005221 2 1 44
|
||||
ControlChange 0.005234 2 1 42
|
||||
ControlChange 0.005196 2 1 40
|
||||
ControlChange 0.005115 2 1 38
|
||||
ControlChange 0.005286 2 1 36
|
||||
ControlChange 0.005148 2 1 34
|
||||
ControlChange 0.005234 2 1 32
|
||||
ControlChange 0.005301 2 1 30
|
||||
ControlChange 0.005069 2 1 28
|
||||
ControlChange 0.005155 2 1 26
|
||||
ControlChange 0.008498 2 1 24
|
||||
ControlChange 0.002918 2 1 21
|
||||
ControlChange 0.004145 2 1 20
|
||||
ControlChange 0.005652 2 1 17
|
||||
ControlChange 0.004790 2 1 15
|
||||
ControlChange 0.005180 2 1 13
|
||||
ControlChange 0.005223 2 1 10
|
||||
ControlChange 0.005177 2 1 8
|
||||
ControlChange 0.005270 2 1 6
|
||||
ControlChange 0.005135 2 1 4
|
||||
ControlChange 0.005196 2 1 2
|
||||
ControlChange 0.005197 2 1 0
|
||||
NoteOff 0.354573 2 63 0
|
||||
NoteOff 0.014193 2 57 0
|
||||
NoteOff 0.008219 2 41 0
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000327 2 68 64
|
||||
NoteOn 0.011439 2 72 60
|
||||
NoteOn 0.100661 2 69 58
|
||||
NoteOff 0.022910 2 68 0
|
||||
NoteOff 0.087179 2 69 0
|
||||
NoteOff 0.002768 2 72 0
|
||||
NoteOn 0.146276 2 74 60
|
||||
NoteOn 0.007877 2 70 73
|
||||
NoteOff 0.065823 2 74 0
|
||||
NoteOff 0.034091 2 70 0
|
||||
NoteOn 0.071562 2 65 42
|
||||
NoteOff 0.095505 2 65 0
|
||||
NoteOn 0.117222 2 72 36
|
||||
NoteOn 0.003568 2 75 57
|
||||
NoteOff 0.867934 2 72 0
|
||||
NoteOff 0.016747 2 75 0
|
||||
NoteOn 0.001292 2 70 66
|
||||
NoteOn 0.016806 2 74 41
|
||||
NoteOff 0.903721 2 70 0
|
||||
NoteOn 0.002269 2 71 60
|
||||
NoteOff 0.002452 2 74 0
|
||||
NoteOff 0.024367 2 71 0
|
||||
NoteOn 0.573769 2 71 71
|
||||
NoteOn 0.071125 2 72 47
|
||||
NoteOff 0.017603 2 71 0
|
||||
NoteOn 0.099531 2 77 63
|
||||
NoteOff 0.005133 2 72 0
|
||||
NoteOn 0.002825 2 75 57
|
||||
NoteOff 0.051047 2 77 0
|
||||
NoteOn 0.062443 2 72 42
|
||||
NoteOff 0.003421 2 75 0
|
||||
NoteOn 0.004190 2 73 22
|
||||
NoteOff 0.032476 2 73 0
|
||||
NoteOff 0.003357 2 72 0
|
||||
NoteOn 0.003412 2 71 51
|
||||
NoteOff 0.082169 2 71 0
|
||||
NoteOn 0.030527 2 70 64
|
||||
NoteOff 0.068936 2 70 0
|
||||
NoteOn 0.002836 2 68 63
|
||||
NoteOff 0.069395 2 68 0
|
||||
NoteOn 0.024967 2 65 52
|
||||
NoteOff 0.083696 2 65 0
|
||||
NoteOn 0.027784 2 63 69
|
||||
NoteOff 0.102489 2 63 0
|
||||
NoteOn 0.048174 2 60 61
|
||||
NoteOff 0.094914 2 60 0
|
||||
NoteOn 0.076034 2 58 62
|
||||
NoteOff 0.080772 2 58 0
|
||||
NoteOn 0.107826 2 56 73
|
||||
NoteOff 0.114325 2 56 0
|
||||
NoteOn 0.159665 2 53 71
|
||||
NoteOff 0.094385 2 53 0
|
||||
NoteOn 0.218823 2 56 82
|
||||
NoteOff 0.396073 2 56 0
|
||||
NoteOn 0.016601 2 53 79
|
||||
NoteOff 0.590675 2 53 0
|
||||
NoteOn 0.013945 2 41 61
|
||||
NoteOn 0.003797 2 53 48
|
||||
NoteOn 0.749734 2 57 69
|
||||
NoteOn 0.006420 2 63 69
|
||||
NoteOff 0.004025 2 53 0
|
||||
NoteOn 0.001033 2 59 71
|
||||
NoteOff 0.183718 2 59 0
|
||||
ControlChange 0.981560 2 1 1
|
||||
ControlChange 0.014051 2 1 2
|
||||
ControlChange 0.018312 2 1 3
|
||||
ControlChange 0.013991 2 1 4
|
||||
ControlChange 0.014672 2 1 5
|
||||
ControlChange 0.008917 2 1 6
|
||||
ControlChange 0.009676 2 1 7
|
||||
ControlChange 0.009401 2 1 8
|
||||
ControlChange 0.014007 2 1 9
|
||||
ControlChange 0.009716 2 1 10
|
||||
ControlChange 0.009322 2 1 11
|
||||
ControlChange 0.009533 2 1 12
|
||||
ControlChange 0.009596 2 1 13
|
||||
ControlChange 0.009475 2 1 14
|
||||
ControlChange 0.014006 2 1 15
|
||||
ControlChange 0.009540 2 1 16
|
||||
ControlChange 0.010279 2 1 17
|
||||
ControlChange 0.013663 2 1 18
|
||||
ControlChange 0.009675 2 1 19
|
||||
ControlChange 0.009790 2 1 20
|
||||
ControlChange 0.014027 2 1 21
|
||||
ControlChange 0.013973 2 1 22
|
||||
ControlChange 0.009544 2 1 23
|
||||
ControlChange 0.014007 2 1 24
|
||||
ControlChange 0.010353 2 1 25
|
||||
ControlChange 0.010221 2 1 26
|
||||
ControlChange 0.017407 2 1 27
|
||||
ControlChange 0.010088 2 1 28
|
||||
ControlChange 0.009214 2 1 29
|
||||
ControlChange 0.009312 2 1 31
|
||||
ControlChange 0.014216 2 1 32
|
||||
ControlChange 0.004844 2 1 33
|
||||
ControlChange 0.009540 2 1 34
|
||||
ControlChange 0.005039 2 1 35
|
||||
ControlChange 0.009520 2 1 36
|
||||
ControlChange 0.010018 2 1 37
|
||||
ControlChange 0.004663 2 1 38
|
||||
ControlChange 0.009539 2 1 39
|
||||
ControlChange 0.009540 2 1 41
|
||||
ControlChange 0.005017 2 1 42
|
||||
ControlChange 0.009504 2 1 43
|
||||
ControlChange 0.005097 2 1 44
|
||||
ControlChange 0.009941 2 1 45
|
||||
ControlChange 0.004610 2 1 46
|
||||
ControlChange 0.005284 2 1 47
|
||||
ControlChange 0.004821 2 1 48
|
||||
ControlChange 0.005134 2 1 49
|
||||
ControlChange 0.009580 2 1 51
|
||||
ControlChange 0.009561 2 1 52
|
||||
ControlChange 0.019091 2 1 54
|
||||
ControlChange 0.001107 2 1 55
|
||||
ControlChange 0.003756 2 1 56
|
||||
ControlChange 0.009684 2 1 57
|
||||
ControlChange 0.004888 2 1 58
|
||||
ControlChange 0.014042 2 1 59
|
||||
ControlChange 0.009508 2 1 60
|
||||
ControlChange 0.009528 2 1 61
|
||||
ControlChange 0.014029 2 1 62
|
||||
ControlChange 0.009753 2 1 63
|
||||
ControlChange 0.018303 2 1 64
|
||||
ControlChange 0.014210 2 1 65
|
||||
ControlChange 0.027270 2 1 66
|
||||
ControlChange 0.027450 2 1 67
|
||||
ControlChange 0.072463 2 1 68
|
||||
ControlChange 0.040774 2 1 69
|
||||
ControlChange 0.022966 2 1 70
|
||||
ControlChange 0.018511 2 1 71
|
||||
ControlChange 0.023463 2 1 72
|
||||
ControlChange 0.013521 2 1 73
|
||||
ControlChange 0.014483 2 1 74
|
||||
ControlChange 0.013854 2 1 75
|
||||
ControlChange 0.009555 2 1 76
|
||||
ControlChange 0.018674 2 1 77
|
||||
ControlChange 0.009540 2 1 78
|
||||
ControlChange 0.009616 2 1 79
|
||||
ControlChange 0.013994 2 1 80
|
||||
ControlChange 0.014260 2 1 81
|
||||
ControlChange 0.018448 2 1 82
|
||||
ControlChange 0.032114 2 1 83
|
||||
ControlChange 0.058711 2 1 84
|
||||
ControlChange 0.049895 2 1 85
|
||||
ControlChange 0.032104 2 1 86
|
||||
ControlChange 0.036434 2 1 87
|
||||
ControlChange 0.022873 2 1 88
|
||||
ControlChange 0.068096 2 1 89
|
||||
ControlChange 0.112544 2 1 90
|
||||
ControlChange 0.018361 2 1 91
|
||||
ControlChange 0.018528 2 1 92
|
||||
ControlChange 0.018461 2 1 93
|
||||
ControlChange 0.014041 2 1 94
|
||||
ControlChange 0.037010 2 1 95
|
||||
ControlChange 0.008956 2 1 96
|
||||
ControlChange 0.099445 2 1 95
|
||||
ControlChange 0.013834 2 1 94
|
||||
ControlChange 0.009499 2 1 93
|
||||
ControlChange 0.010104 2 1 92
|
||||
ControlChange 0.005027 2 1 91
|
||||
ControlChange 0.010180 2 1 90
|
||||
ControlChange 0.008871 2 1 89
|
||||
ControlChange 0.009510 2 1 88
|
||||
ControlChange 0.005047 2 1 87
|
||||
ControlChange 0.014061 2 1 86
|
||||
ControlChange 0.009903 2 1 85
|
||||
ControlChange 0.009119 2 1 84
|
||||
ControlChange 0.009573 2 1 83
|
||||
ControlChange 0.009491 2 1 82
|
||||
ControlChange 0.005078 2 1 81
|
||||
ControlChange 0.005002 2 1 80
|
||||
ControlChange 0.009607 2 1 78
|
||||
ControlChange 0.005082 2 1 77
|
||||
ControlChange 0.009826 2 1 76
|
||||
ControlChange 0.004771 2 1 75
|
||||
ControlChange 0.005025 2 1 74
|
||||
ControlChange 0.005486 2 1 72
|
||||
ControlChange 0.004613 2 1 71
|
||||
ControlChange 0.005046 2 1 70
|
||||
ControlChange 0.005514 2 1 69
|
||||
ControlChange 0.004571 2 1 67
|
||||
ControlChange 0.005025 2 1 66
|
||||
ControlChange 0.005039 2 1 65
|
||||
ControlChange 0.005033 2 1 63
|
||||
ControlChange 0.005073 2 1 62
|
||||
ControlChange 0.005017 2 1 60
|
||||
ControlChange 0.005073 2 1 59
|
||||
ControlChange 0.005033 2 1 57
|
||||
ControlChange 0.005061 2 1 56
|
||||
ControlChange 0.005057 2 1 54
|
||||
ControlChange 0.005024 2 1 52
|
||||
ControlChange 0.005068 2 1 51
|
||||
ControlChange 0.004988 2 1 49
|
||||
ControlChange 0.005074 2 1 47
|
||||
ControlChange 0.005035 2 1 45
|
||||
ControlChange 0.005221 2 1 44
|
||||
ControlChange 0.005234 2 1 42
|
||||
ControlChange 0.005196 2 1 40
|
||||
ControlChange 0.005115 2 1 38
|
||||
ControlChange 0.005286 2 1 36
|
||||
ControlChange 0.005148 2 1 34
|
||||
ControlChange 0.005234 2 1 32
|
||||
ControlChange 0.005301 2 1 30
|
||||
ControlChange 0.005069 2 1 28
|
||||
ControlChange 0.005155 2 1 26
|
||||
ControlChange 0.008498 2 1 24
|
||||
ControlChange 0.002918 2 1 21
|
||||
ControlChange 0.004145 2 1 20
|
||||
ControlChange 0.005652 2 1 17
|
||||
ControlChange 0.004790 2 1 15
|
||||
ControlChange 0.005180 2 1 13
|
||||
ControlChange 0.005223 2 1 10
|
||||
ControlChange 0.005177 2 1 8
|
||||
ControlChange 0.005270 2 1 6
|
||||
ControlChange 0.005135 2 1 4
|
||||
ControlChange 0.005196 2 1 2
|
||||
ControlChange 0.005197 2 1 0
|
||||
NoteOff 0.354573 2 63 0
|
||||
NoteOff 0.014193 2 57 0
|
||||
NoteOff 0.008219 2 41 0
|
||||
|
||||
@@ -1,65 +1,65 @@
|
||||
/* Howdy!!!! SKINI0.9 Test Score ***********/
|
||||
|
||||
PickPosition 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 56.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 48.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 40.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 32.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 24.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 16.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 8.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
PickPosition 0.0 2 64.0
|
||||
BodySize 0.0 2 0.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 16.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 32.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 48.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 60.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 80.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 96.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 127.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
StringDamping 0.0 2 0.0
|
||||
PickPosition 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
StringDamping 0.0 2 128.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
/* Howdy!!!! SKINI0.9 Test Score ***********/
|
||||
|
||||
PickPosition 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 56.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 48.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 40.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 32.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 24.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 16.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
PickPosition 0.0 2 8.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
PickPosition 0.0 2 64.0
|
||||
BodySize 0.0 2 0.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 16.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 32.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 48.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 60.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 80.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 96.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 127.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 0.25 2 55.0 64.0
|
||||
BodySize 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
StringDamping 0.0 2 0.0
|
||||
PickPosition 0.0 2 64.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
StringDamping 0.0 2 128.0
|
||||
NoteOn 0.0 2 55.0 64.0
|
||||
NoteOff 1.25 2 55.0 64.0
|
||||
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 72 127.000000
|
||||
NoteOff 0.540000 1 72 63.500000
|
||||
NoteOn 0.060000 1 70 127.000000
|
||||
NoteOff 0.540000 1 70 63.500000
|
||||
NoteOn 0.060000 1 75 127.000000
|
||||
NoteOff 0.540000 1 75 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.270023 1 77 63.500000
|
||||
NoteOn 0.030023 1 70 127.000000
|
||||
ControlChange 0.000000 1 2 96.000000
|
||||
NoteOff 0.299728 1 70 63.500000
|
||||
NoteOn 0.000317 1 79 127.000000
|
||||
NoteOff 0.540000 1 79 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.270023 1 77 63.500000
|
||||
NoteOn 0.030023 1 70 127.000000
|
||||
ControlChange 0.000000 1 2 96.000000
|
||||
NoteOff 0.299728 1 70 63.500000
|
||||
NoteOn 0.000317 1 79 127.000000
|
||||
NoteOff 0.540000 1 79 63.500000
|
||||
NoteOn 0.060000 1 75 127.000000
|
||||
NoteOff 0.540000 1 75 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.540000 1 77 63.500000
|
||||
NoteOn 0.060000 1 72 127.000000
|
||||
NoteOff 0.540000 1 72 63.500000
|
||||
NoteOn 0.060000 1 70 127.000000
|
||||
NoteOff 0.540000 1 70 63.500000
|
||||
NoteOff 0.060000 1 70 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 72 127.000000
|
||||
NoteOff 0.540000 1 72 63.500000
|
||||
NoteOn 0.060000 1 70 127.000000
|
||||
NoteOff 0.540000 1 70 63.500000
|
||||
NoteOn 0.060000 1 75 127.000000
|
||||
NoteOff 0.540000 1 75 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.270023 1 77 63.500000
|
||||
NoteOn 0.030023 1 70 127.000000
|
||||
ControlChange 0.000000 1 2 96.000000
|
||||
NoteOff 0.299728 1 70 63.500000
|
||||
NoteOn 0.000317 1 79 127.000000
|
||||
NoteOff 0.540000 1 79 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.270023 1 77 63.500000
|
||||
NoteOn 0.030023 1 70 127.000000
|
||||
ControlChange 0.000000 1 2 96.000000
|
||||
NoteOff 0.299728 1 70 63.500000
|
||||
NoteOn 0.000317 1 79 127.000000
|
||||
NoteOff 0.540000 1 79 63.500000
|
||||
NoteOn 0.060000 1 75 127.000000
|
||||
NoteOff 0.540000 1 75 63.500000
|
||||
NoteOn 0.060000 1 77 127.000000
|
||||
NoteOff 0.540000 1 77 63.500000
|
||||
NoteOn 0.060000 1 72 127.000000
|
||||
NoteOff 0.540000 1 72 63.500000
|
||||
NoteOn 0.060000 1 70 127.000000
|
||||
NoteOff 0.540000 1 70 63.500000
|
||||
NoteOff 0.060000 1 70 63.500000
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
ControlChange 0.000000 1 1 50.000000
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.480045 1 60 88.899998
|
||||
NoteOn 0.120045 1 60 76.200003
|
||||
NoteOff 0.150023 1 60 63.500000
|
||||
NoteOn 0.150023 1 62 101.600002
|
||||
NoteOff 0.720000 1 62 88.899998
|
||||
NoteOn 0.180000 1 62 76.200003
|
||||
NoteOff 0.150023 1 62 63.500000
|
||||
NoteOn 0.150023 1 63 101.600002
|
||||
NoteOff 0.720000 1 63 88.899998
|
||||
NoteOn 0.180000 1 63 38.100002
|
||||
NoteOff 0.150023 1 63 63.500000
|
||||
NoteOn 0.150023 1 62 101.600002
|
||||
NoteOff 0.720000 1 62 88.899998
|
||||
NoteOn 0.180000 1 62 76.200003
|
||||
NoteOff 0.480045 1 62 88.899998
|
||||
NoteOn 0.120045 1 48 114.299997
|
||||
NoteOff 0.480045 1 48 88.899998
|
||||
NoteOn 0.120045 1 48 76.200003
|
||||
NoteOff 0.150023 1 48 63.500000
|
||||
NoteOn 0.150023 1 50 101.600002
|
||||
NoteOff 0.720000 1 50 88.899998
|
||||
NoteOn 0.180000 1 50 76.200003
|
||||
NoteOff 0.150023 1 50 63.500000
|
||||
NoteOn 0.150023 1 51 101.600002
|
||||
NoteOff 0.720000 1 51 88.899998
|
||||
NoteOn 0.180000 1 51 38.100002
|
||||
NoteOff 0.150023 1 51 63.500000
|
||||
NoteOn 0.150023 1 50 101.600002
|
||||
NoteOff 0.720000 1 50 88.899998
|
||||
NoteOn 0.180000 1 48 76.200003
|
||||
NoteOff 0.240045 1 48 88.899998
|
||||
NoteOn 0.060045 1 72 88.899998
|
||||
NoteOff 0.240045 1 72 88.899998
|
||||
NoteOn 0.060045 1 77 114.299997
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 77 101.600002
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 77 88.899998
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 75 76.200003
|
||||
NoteOff 0.240045 1 75 88.899998
|
||||
NoteOn 0.060045 1 77 88.899998
|
||||
NoteOff 0.480045 1 77 88.899998
|
||||
NoteOn 0.120045 1 77 88.899998
|
||||
NoteOff 0.150023 1 77 63.500000
|
||||
NoteOn 0.150023 1 77 88.899998
|
||||
NoteOff 0.150023 1 77 63.500000
|
||||
NoteOn 0.150023 1 87 101.600002
|
||||
NoteOff 0.240045 1 87 88.899998
|
||||
NoteOn 0.060045 1 84 76.200003
|
||||
NoteOff 0.150023 1 84 63.500000
|
||||
NoteOn 0.150023 1 84 76.200003
|
||||
NoteOff 0.240045 1 84 88.899998
|
||||
NoteOn 0.060045 1 82 76.200003
|
||||
NoteOff 0.240045 1 82 88.899998
|
||||
NoteOn 0.060045 1 84 88.899998
|
||||
NoteOff 0.960045 1 84 88.899998
|
||||
NoteOn 0.240045 1 48 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 1.300000 1 48 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
ControlChange 0.000000 1 1 50.000000
|
||||
NoteOn 0.000000 1 60 114.299997
|
||||
NoteOff 0.480045 1 60 88.899998
|
||||
NoteOn 0.120045 1 60 76.200003
|
||||
NoteOff 0.150023 1 60 63.500000
|
||||
NoteOn 0.150023 1 62 101.600002
|
||||
NoteOff 0.720000 1 62 88.899998
|
||||
NoteOn 0.180000 1 62 76.200003
|
||||
NoteOff 0.150023 1 62 63.500000
|
||||
NoteOn 0.150023 1 63 101.600002
|
||||
NoteOff 0.720000 1 63 88.899998
|
||||
NoteOn 0.180000 1 63 38.100002
|
||||
NoteOff 0.150023 1 63 63.500000
|
||||
NoteOn 0.150023 1 62 101.600002
|
||||
NoteOff 0.720000 1 62 88.899998
|
||||
NoteOn 0.180000 1 62 76.200003
|
||||
NoteOff 0.480045 1 62 88.899998
|
||||
NoteOn 0.120045 1 48 114.299997
|
||||
NoteOff 0.480045 1 48 88.899998
|
||||
NoteOn 0.120045 1 48 76.200003
|
||||
NoteOff 0.150023 1 48 63.500000
|
||||
NoteOn 0.150023 1 50 101.600002
|
||||
NoteOff 0.720000 1 50 88.899998
|
||||
NoteOn 0.180000 1 50 76.200003
|
||||
NoteOff 0.150023 1 50 63.500000
|
||||
NoteOn 0.150023 1 51 101.600002
|
||||
NoteOff 0.720000 1 51 88.899998
|
||||
NoteOn 0.180000 1 51 38.100002
|
||||
NoteOff 0.150023 1 51 63.500000
|
||||
NoteOn 0.150023 1 50 101.600002
|
||||
NoteOff 0.720000 1 50 88.899998
|
||||
NoteOn 0.180000 1 48 76.200003
|
||||
NoteOff 0.240045 1 48 88.899998
|
||||
NoteOn 0.060045 1 72 88.899998
|
||||
NoteOff 0.240045 1 72 88.899998
|
||||
NoteOn 0.060045 1 77 114.299997
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 77 101.600002
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 77 88.899998
|
||||
NoteOff 0.240045 1 77 88.899998
|
||||
NoteOn 0.060045 1 75 76.200003
|
||||
NoteOff 0.240045 1 75 88.899998
|
||||
NoteOn 0.060045 1 77 88.899998
|
||||
NoteOff 0.480045 1 77 88.899998
|
||||
NoteOn 0.120045 1 77 88.899998
|
||||
NoteOff 0.150023 1 77 63.500000
|
||||
NoteOn 0.150023 1 77 88.899998
|
||||
NoteOff 0.150023 1 77 63.500000
|
||||
NoteOn 0.150023 1 87 101.600002
|
||||
NoteOff 0.240045 1 87 88.899998
|
||||
NoteOn 0.060045 1 84 76.200003
|
||||
NoteOff 0.150023 1 84 63.500000
|
||||
NoteOn 0.150023 1 84 76.200003
|
||||
NoteOff 0.240045 1 84 88.899998
|
||||
NoteOn 0.060045 1 82 76.200003
|
||||
NoteOff 0.240045 1 82 88.899998
|
||||
NoteOn 0.060045 1 84 88.899998
|
||||
NoteOff 0.960045 1 84 88.899998
|
||||
NoteOn 0.240045 1 48 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 1.300000 1 48 63.500000
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
PlayerSkill 0.0 2 100
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
PlayerSkill 0.0 2 10
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
Strumming 0.0 2 127
|
||||
PlayerSkill 0.0 2 127
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
PlayerSkill 0.0 2 0
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 2.0 2 67 0
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
PlayerSkill 0.0 2 100
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
PlayerSkill 0.0 2 10
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
Strumming 0.0 2 127
|
||||
PlayerSkill 0.0 2 127
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
PlayerSkill 0.0 2 0
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 0.5 2 67 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 74 64
|
||||
NoteOff 0.5 2 74 0
|
||||
NoteOn 0.0 2 72 64
|
||||
NoteOff 0.5 2 72 0
|
||||
NoteOn 0.0 2 71 64
|
||||
NoteOff 0.5 2 71 0
|
||||
NoteOn 0.0 2 69 64
|
||||
NoteOff 0.5 2 69 0
|
||||
NoteOn 0.0 2 67 64
|
||||
NoteOff 2.0 2 67 0
|
||||
|
||||
@@ -1,64 +1,64 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
|
||||
Maraca 0.000000 1
|
||||
NoteOn 0.500000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
ControlChange 0.500000 1 1 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 40
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 80
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 120
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Maraca 0.500000 1
|
||||
ControlChange 0.000000 1 4 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 40
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 80
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 120
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Maraca 0.500000 1
|
||||
ControlChange 0.000000 1 11 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 4
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 16
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 64
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 128
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Cabasa 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Sekere 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Tambourn 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Sleighbl 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Exit
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
|
||||
Maraca 0.000000 1
|
||||
NoteOn 0.500000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
ControlChange 0.500000 1 1 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 40
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 80
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 1 120
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Maraca 0.500000 1
|
||||
ControlChange 0.000000 1 4 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 40
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 80
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 0.500000 1 4 120
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Maraca 0.500000 1
|
||||
ControlChange 0.000000 1 11 1
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 4
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 16
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 64
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
ControlChange 1.000000 1 11 128
|
||||
NoteOn 0.000000 1 80 64.000000
|
||||
|
||||
Cabasa 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Sekere 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Tambourn 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Sleighbl 0.500000 1
|
||||
NoteOn 0.000000 1 80 10.000000
|
||||
NoteOn 0.500000 1 80 50.000000
|
||||
NoteOn 0.500000 1 80 90.000000
|
||||
NoteOn 0.500000 1 80 127.000000
|
||||
|
||||
Exit
|
||||
|
||||
@@ -1,47 +1,47 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.475011 1 60 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.475011 1 65 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.124989 1 65 63.500000
|
||||
NoteOn 0.124989 1 67 127.000000
|
||||
NoteOff 0.124989 1 67 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.237506 1 69 63.500000
|
||||
NoteOn 0.012517 1 65 127.000000
|
||||
NoteOff 0.124989 1 65 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.124989 1 69 63.500000
|
||||
NoteOn 0.124989 1 70 127.000000
|
||||
NoteOff 0.237506 1 70 63.500000
|
||||
NoteOn 0.012517 1 72 127.000000
|
||||
NoteOff 0.475011 1 72 63.500000
|
||||
NoteOn 0.025034 1 72 127.000000
|
||||
NoteOff 0.237506 1 72 63.500000
|
||||
NoteOn 0.012517 1 70 127.000000
|
||||
NoteOff 0.124989 1 70 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.475011 1 69 63.500000
|
||||
NoteOn 0.025034 1 79 127.000000
|
||||
NoteOff 0.124989 1 79 63.500000
|
||||
NoteOn 0.124989 1 77 127.000000
|
||||
NoteOff 0.124989 1 77 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.475011 1 79 63.500000
|
||||
NoteOn 0.025034 1 79 127.000000
|
||||
NoteOff 0.475011 1 79 63.500000
|
||||
NoteOn 0.025034 1 81 127.000000
|
||||
NoteOff 0.475011 1 81 63.500000
|
||||
NoteOn 0.025034 1 81 127.000000
|
||||
NoteOff 0.124989 1 81 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.124989 1 79 63.500000
|
||||
NoteOn 0.124989 1 77 127.000000
|
||||
ControlChange 0.000000 1 1 32.000000
|
||||
NoteOff 0.475011 1 77 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.475011 1 65 63.500000
|
||||
NoteOn 0.025034 1 41 127.000000
|
||||
NoteOff 0.950023 1 41 63.500000
|
||||
NoteOff 0.050023 1 41 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.475011 1 60 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.475011 1 65 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.124989 1 65 63.500000
|
||||
NoteOn 0.124989 1 67 127.000000
|
||||
NoteOff 0.124989 1 67 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.237506 1 69 63.500000
|
||||
NoteOn 0.012517 1 65 127.000000
|
||||
NoteOff 0.124989 1 65 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.124989 1 69 63.500000
|
||||
NoteOn 0.124989 1 70 127.000000
|
||||
NoteOff 0.237506 1 70 63.500000
|
||||
NoteOn 0.012517 1 72 127.000000
|
||||
NoteOff 0.475011 1 72 63.500000
|
||||
NoteOn 0.025034 1 72 127.000000
|
||||
NoteOff 0.237506 1 72 63.500000
|
||||
NoteOn 0.012517 1 70 127.000000
|
||||
NoteOff 0.124989 1 70 63.500000
|
||||
NoteOn 0.124989 1 69 127.000000
|
||||
NoteOff 0.475011 1 69 63.500000
|
||||
NoteOn 0.025034 1 79 127.000000
|
||||
NoteOff 0.124989 1 79 63.500000
|
||||
NoteOn 0.124989 1 77 127.000000
|
||||
NoteOff 0.124989 1 77 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.475011 1 79 63.500000
|
||||
NoteOn 0.025034 1 79 127.000000
|
||||
NoteOff 0.475011 1 79 63.500000
|
||||
NoteOn 0.025034 1 81 127.000000
|
||||
NoteOff 0.475011 1 81 63.500000
|
||||
NoteOn 0.025034 1 81 127.000000
|
||||
NoteOff 0.124989 1 81 63.500000
|
||||
NoteOn 0.124989 1 79 127.000000
|
||||
NoteOff 0.124989 1 79 63.500000
|
||||
NoteOn 0.124989 1 77 127.000000
|
||||
ControlChange 0.000000 1 1 32.000000
|
||||
NoteOff 0.475011 1 77 63.500000
|
||||
NoteOn 0.025034 1 65 127.000000
|
||||
NoteOff 0.475011 1 65 63.500000
|
||||
NoteOn 0.025034 1 41 127.000000
|
||||
NoteOff 0.950023 1 41 63.500000
|
||||
NoteOff 0.050023 1 41 63.500000
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 48 88.899998
|
||||
NoteOff 0.416009 1 48 63.500000
|
||||
NoteOn 0.104036 1 53 101.600002
|
||||
NoteOff 0.312018 1 53 63.500000
|
||||
NoteOn 0.078005 1 56 63.500000
|
||||
NoteOn 0.130023 1 55 101.600002
|
||||
NoteOn 0.260000 1 51 76.200003
|
||||
NoteOn 0.130023 1 48 38.100002
|
||||
NoteOn 0.130023 1 53 101.600002
|
||||
NoteOn 0.520000 1 58 127.000000
|
||||
NoteOff 0.312018 1 58 63.500000
|
||||
NoteOn 0.078005 1 63 76.200003
|
||||
NoteOn 0.130023 1 62 114.299997
|
||||
NoteOff 0.416009 1 62 63.500000
|
||||
NoteOn 0.104036 1 58 127.000000
|
||||
NoteOn 0.130023 1 60 50.800001
|
||||
NoteOn 0.260000 1 56 88.899998
|
||||
NoteOn 0.260000 1 56 63.500000
|
||||
NoteOn 0.130023 1 63 76.200003
|
||||
NoteOn 0.260000 1 41 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 1.950023 1 41 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 48 88.899998
|
||||
NoteOff 0.416009 1 48 63.500000
|
||||
NoteOn 0.104036 1 53 101.600002
|
||||
NoteOff 0.312018 1 53 63.500000
|
||||
NoteOn 0.078005 1 56 63.500000
|
||||
NoteOn 0.130023 1 55 101.600002
|
||||
NoteOn 0.260000 1 51 76.200003
|
||||
NoteOn 0.130023 1 48 38.100002
|
||||
NoteOn 0.130023 1 53 101.600002
|
||||
NoteOn 0.520000 1 58 127.000000
|
||||
NoteOff 0.312018 1 58 63.500000
|
||||
NoteOn 0.078005 1 63 76.200003
|
||||
NoteOn 0.130023 1 62 114.299997
|
||||
NoteOff 0.416009 1 62 63.500000
|
||||
NoteOn 0.104036 1 58 127.000000
|
||||
NoteOn 0.130023 1 60 50.800001
|
||||
NoteOn 0.260000 1 56 88.899998
|
||||
NoteOn 0.260000 1 56 63.500000
|
||||
NoteOn 0.130023 1 63 76.200003
|
||||
NoteOn 0.260000 1 41 127.000000
|
||||
ControlChange 0.000000 1 1 127.000000
|
||||
NoteOff 1.950023 1 41 63.500000
|
||||
|
||||
@@ -1,56 +1,56 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 60 127.000000
|
||||
NoteOff 0.252018 1 60 63.500000
|
||||
NoteOn 0.028027 1 60 127.000000
|
||||
NoteOff 0.252018 1 60 63.500000
|
||||
NoteOn 0.028027 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 63 127.000000
|
||||
NoteOff 0.126032 1 63 63.500000
|
||||
NoteOn 0.014014 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 65 127.000000
|
||||
NoteOff 0.252018 1 65 63.500000
|
||||
NoteOn 0.028027 1 67 127.000000
|
||||
NoteOff 0.756009 1 67 63.500000
|
||||
NoteOn 0.084036 1 72 127.000000
|
||||
NoteOff 0.252018 1 72 63.500000
|
||||
NoteOn 0.028027 1 75 127.000000
|
||||
NoteOff 0.126032 1 75 63.500000
|
||||
NoteOn 0.014014 1 72 127.000000
|
||||
NoteOff 0.378005 1 72 63.500000
|
||||
NoteOn 0.042041 1 70 127.000000
|
||||
NoteOff 0.126032 1 70 63.500000
|
||||
NoteOn 0.014014 1 67 127.000000
|
||||
NoteOff 0.126032 1 67 63.500000
|
||||
NoteOn 0.014014 1 72 127.000000
|
||||
NoteOff 0.252018 1 72 63.500000
|
||||
NoteOn 0.028027 1 70 127.000000
|
||||
NoteOff 0.252018 1 70 63.500000
|
||||
NoteOn 0.028027 1 67 127.000000
|
||||
NoteOff 0.126032 1 67 63.500000
|
||||
NoteOn 0.014014 1 65 127.000000
|
||||
NoteOff 0.126032 1 65 63.500000
|
||||
NoteOn 0.014014 1 63 127.000000
|
||||
NoteOff 0.252018 1 63 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 48 127.000000
|
||||
NoteOff 0.252018 1 48 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.252018 1 48 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 51 127.000000
|
||||
NoteOff 0.126032 1 51 63.500000
|
||||
NoteOn 0.014014 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 53 127.000000
|
||||
NoteOff 0.252018 1 53 63.500000
|
||||
NoteOn 0.028027 1 51 127.000000
|
||||
NoteOff 1.260000 1 51 63.500000
|
||||
NoteOn 0.140000 1 84 127.000000
|
||||
NoteOff 0.630023 1 84 63.500000
|
||||
NoteOff 0.070023 1 84 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 60 127.000000
|
||||
NoteOff 0.252018 1 60 63.500000
|
||||
NoteOn 0.028027 1 60 127.000000
|
||||
NoteOff 0.252018 1 60 63.500000
|
||||
NoteOn 0.028027 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 63 127.000000
|
||||
NoteOff 0.126032 1 63 63.500000
|
||||
NoteOn 0.014014 1 60 127.000000
|
||||
NoteOff 0.126032 1 60 63.500000
|
||||
NoteOn 0.014014 1 65 127.000000
|
||||
NoteOff 0.252018 1 65 63.500000
|
||||
NoteOn 0.028027 1 67 127.000000
|
||||
NoteOff 0.756009 1 67 63.500000
|
||||
NoteOn 0.084036 1 72 127.000000
|
||||
NoteOff 0.252018 1 72 63.500000
|
||||
NoteOn 0.028027 1 75 127.000000
|
||||
NoteOff 0.126032 1 75 63.500000
|
||||
NoteOn 0.014014 1 72 127.000000
|
||||
NoteOff 0.378005 1 72 63.500000
|
||||
NoteOn 0.042041 1 70 127.000000
|
||||
NoteOff 0.126032 1 70 63.500000
|
||||
NoteOn 0.014014 1 67 127.000000
|
||||
NoteOff 0.126032 1 67 63.500000
|
||||
NoteOn 0.014014 1 72 127.000000
|
||||
NoteOff 0.252018 1 72 63.500000
|
||||
NoteOn 0.028027 1 70 127.000000
|
||||
NoteOff 0.252018 1 70 63.500000
|
||||
NoteOn 0.028027 1 67 127.000000
|
||||
NoteOff 0.126032 1 67 63.500000
|
||||
NoteOn 0.014014 1 65 127.000000
|
||||
NoteOff 0.126032 1 65 63.500000
|
||||
NoteOn 0.014014 1 63 127.000000
|
||||
NoteOff 0.252018 1 63 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 48 127.000000
|
||||
NoteOff 0.252018 1 48 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.252018 1 48 63.500000
|
||||
NoteOn 0.028027 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 51 127.000000
|
||||
NoteOff 0.126032 1 51 63.500000
|
||||
NoteOn 0.014014 1 48 127.000000
|
||||
NoteOff 0.126032 1 48 63.500000
|
||||
NoteOn 0.014014 1 53 127.000000
|
||||
NoteOff 0.252018 1 53 63.500000
|
||||
NoteOn 0.028027 1 51 127.000000
|
||||
NoteOff 1.260000 1 51 63.500000
|
||||
NoteOn 0.140000 1 84 127.000000
|
||||
NoteOff 0.630023 1 84 63.500000
|
||||
NoteOff 0.070023 1 84 63.500000
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/* Howdy!! SKINI File, Perry Cook */
|
||||
NoteOn 0.2 1 60 127.000000
|
||||
NoteOff 0.6 1 60 63.500000
|
||||
/* Howdy!! SKINI File, Perry Cook */
|
||||
NoteOn 0.2 1 60 127.000000
|
||||
NoteOff 0.6 1 60 63.500000
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 48 127.000000
|
||||
NoteOff 0.380000 1 48 63.500000
|
||||
NoteOn 0.020000 1 48 127.000000
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 51 127.000000
|
||||
NoteOff 0.100000 1 51 63.500000
|
||||
NoteOn 0.100000 1 51 127.000000
|
||||
NoteOff 0.570023 1 51 63.500000
|
||||
NoteOn 0.030023 1 50 127.000000
|
||||
NoteOff 0.100000 1 50 63.500000
|
||||
NoteOn 0.100000 1 46 127.000000
|
||||
NoteOff 0.200000 1 46 63.500000
|
||||
NoteOn 0.200000 1 60 127.000000
|
||||
NoteOff 0.950023 1 60 63.500000
|
||||
NoteOn 0.050023 1 77 127.000000
|
||||
NoteOff 0.190023 1 77 63.500000
|
||||
NoteOn 0.010023 1 72 127.000000
|
||||
NoteOff 0.190023 1 72 63.500000
|
||||
NoteOn 0.010023 1 69 127.000000
|
||||
NoteOff 0.100000 1 69 63.500000
|
||||
NoteOn 0.100000 1 75 127.000000
|
||||
NoteOff 0.380000 1 75 63.500000
|
||||
NoteOn 0.020000 1 70 127.000000
|
||||
NoteOff 0.100000 1 70 63.500000
|
||||
NoteOn 0.100000 1 67 127.000000
|
||||
NoteOff 0.100000 1 67 63.500000
|
||||
NoteOn 0.100000 1 74 127.000000
|
||||
NoteOff 0.380000 1 74 63.500000
|
||||
NoteOn 0.020000 1 70 127.000000
|
||||
NoteOff 0.100000 1 70 63.500000
|
||||
NoteOn 0.100000 1 65 127.000000
|
||||
NoteOff 0.100000 1 65 63.500000
|
||||
NoteOn 0.100000 1 72 127.000000
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
NoteOff 1.000000 1 72 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 48 127.000000
|
||||
NoteOff 0.380000 1 48 63.500000
|
||||
NoteOn 0.020000 1 48 127.000000
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 48 127.000000
|
||||
NoteOff 0.100000 1 48 63.500000
|
||||
NoteOn 0.100000 1 51 127.000000
|
||||
NoteOff 0.100000 1 51 63.500000
|
||||
NoteOn 0.100000 1 51 127.000000
|
||||
NoteOff 0.570023 1 51 63.500000
|
||||
NoteOn 0.030023 1 50 127.000000
|
||||
NoteOff 0.100000 1 50 63.500000
|
||||
NoteOn 0.100000 1 46 127.000000
|
||||
NoteOff 0.200000 1 46 63.500000
|
||||
NoteOn 0.200000 1 60 127.000000
|
||||
NoteOff 0.950023 1 60 63.500000
|
||||
NoteOn 0.050023 1 77 127.000000
|
||||
NoteOff 0.190023 1 77 63.500000
|
||||
NoteOn 0.010023 1 72 127.000000
|
||||
NoteOff 0.190023 1 72 63.500000
|
||||
NoteOn 0.010023 1 69 127.000000
|
||||
NoteOff 0.100000 1 69 63.500000
|
||||
NoteOn 0.100000 1 75 127.000000
|
||||
NoteOff 0.380000 1 75 63.500000
|
||||
NoteOn 0.020000 1 70 127.000000
|
||||
NoteOff 0.100000 1 70 63.500000
|
||||
NoteOn 0.100000 1 67 127.000000
|
||||
NoteOff 0.100000 1 67 63.500000
|
||||
NoteOn 0.100000 1 74 127.000000
|
||||
NoteOff 0.380000 1 74 63.500000
|
||||
NoteOn 0.020000 1 70 127.000000
|
||||
NoteOff 0.100000 1 70 63.500000
|
||||
NoteOn 0.100000 1 65 127.000000
|
||||
NoteOff 0.100000 1 65 63.500000
|
||||
NoteOn 0.100000 1 72 127.000000
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
NoteOff 1.000000 1 72 63.500000
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 65 63.500000
|
||||
NoteOn 0.200000 1 73 101.600002
|
||||
NoteOn 0.200000 1 65 76.200003
|
||||
NoteOn 0.200000 1 75 114.299997
|
||||
NoteOn 0.200000 1 65 63.500000
|
||||
NoteOn 0.200000 1 72 76.200003
|
||||
NoteOn 0.200000 1 73 114.299997
|
||||
NoteOn 0.200000 1 65 50.800001
|
||||
NoteOn 0.200000 1 72 114.299997
|
||||
NoteOn 0.200000 1 65 63.500000
|
||||
NoteOn 0.200000 1 70 114.299997
|
||||
NoteOn 0.200000 1 65 50.800001
|
||||
NoteOn 0.200000 1 85 127.000000
|
||||
NoteOn 0.200000 1 65 76.200003
|
||||
NoteOn 0.200000 1 80 76.200003
|
||||
NoteOn 0.200000 1 46 127.000000
|
||||
ControlChange 0.000000 1 1 120.000000
|
||||
NoteOff 2.000000 1 46 63.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
NoteOn 0.000000 1 65 63.500000
|
||||
NoteOn 0.200000 1 73 101.600002
|
||||
NoteOn 0.200000 1 65 76.200003
|
||||
NoteOn 0.200000 1 75 114.299997
|
||||
NoteOn 0.200000 1 65 63.500000
|
||||
NoteOn 0.200000 1 72 76.200003
|
||||
NoteOn 0.200000 1 73 114.299997
|
||||
NoteOn 0.200000 1 65 50.800001
|
||||
NoteOn 0.200000 1 72 114.299997
|
||||
NoteOn 0.200000 1 65 63.500000
|
||||
NoteOn 0.200000 1 70 114.299997
|
||||
NoteOn 0.200000 1 65 50.800001
|
||||
NoteOn 0.200000 1 85 127.000000
|
||||
NoteOn 0.200000 1 65 76.200003
|
||||
NoteOn 0.200000 1 80 76.200003
|
||||
NoteOn 0.200000 1 46 127.000000
|
||||
ControlChange 0.000000 1 1 120.000000
|
||||
NoteOff 2.000000 1 46 63.500000
|
||||
|
||||
@@ -1,158 +1,158 @@
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
/**** BASS ****/
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 0.500000 1 40 64.500000
|
||||
NoteOn 0.000000 1 44 74.000000
|
||||
NoteOff 0.500000 1 44 64.500000
|
||||
NoteOn 0.000000 1 47 84.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 52 94.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 64.500000
|
||||
NoteOn 0.000000 1 47 74.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 42 54.000000
|
||||
NoteOff 0.500000 1 42 64.500000
|
||||
ControlChange 0.000000 1 4 20.000000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 0.500000 1 40 64.500000
|
||||
NoteOn 0.000000 1 44 74.000000
|
||||
NoteOff 0.500000 1 44 64.500000
|
||||
NoteOn 0.000000 1 47 84.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 52 94.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 12.000000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 64.500000
|
||||
NoteOn 0.000000 1 47 74.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 42 54.000000
|
||||
NoteOff 0.500000 1 42 64.500000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 1.000000 1 40 64.500000
|
||||
/**** TENOR ****/
|
||||
ControlChange 0.000000 1 4 40.000000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 49 74.000000
|
||||
NoteOff 0.500000 1 49 64.500000
|
||||
NoteOn 0.000000 1 52 84.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 57 94.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
ControlChange 0.000000 1 4 32.000000
|
||||
NoteOn 0.000000 1 56 84.000000
|
||||
NoteOff 0.500000 1 56 64.500000
|
||||
NoteOn 0.000000 1 52 74.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 47 54.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
ControlChange 0.000000 1 4 52.000000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 49 74.000000
|
||||
NoteOff 0.500000 1 49 64.500000
|
||||
NoteOn 0.000000 1 52 84.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 57 94.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
ControlChange 0.000000 1 4 44.000000
|
||||
NoteOn 0.000000 1 56 84.000000
|
||||
NoteOff 0.500000 1 56 64.500000
|
||||
NoteOn 0.000000 1 52 74.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 47 54.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 1.000000 1 45 64.500000
|
||||
/**** ALTO ****/
|
||||
ControlChange 0.000000 1 4 72.000000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 54 74.000000
|
||||
NoteOff 0.500000 1 54 64.500000
|
||||
NoteOn 0.000000 1 57 84.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 62 94.000000
|
||||
NoteOff 0.500000 1 62 64.500000
|
||||
ControlChange 0.000000 1 4 64.000000
|
||||
NoteOn 0.000000 1 61 84.000000
|
||||
NoteOff 0.500000 1 61 64.500000
|
||||
NoteOn 0.000000 1 57 74.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 55 64.000000
|
||||
NoteOff 0.500000 1 55 64.500000
|
||||
NoteOn 0.000000 1 52 54.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 84.000000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 54 74.000000
|
||||
NoteOff 0.500000 1 54 64.500000
|
||||
NoteOn 0.000000 1 57 84.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 62 94.000000
|
||||
NoteOff 0.500000 1 62 64.500000
|
||||
ControlChange 0.000000 1 4 76.000000
|
||||
NoteOn 0.000000 1 61 84.000000
|
||||
NoteOff 0.500000 1 61 64.500000
|
||||
NoteOn 0.000000 1 57 74.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 55 64.000000
|
||||
NoteOff 0.500000 1 55 64.500000
|
||||
NoteOn 0.000000 1 52 54.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 1.000000 1 50 64.500000
|
||||
/**** SOPRANO ****/
|
||||
ControlChange 0.000000 1 4 104.000000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 0.500000 1 70 64.500000
|
||||
NoteOn 0.000000 1 74 74.000000
|
||||
NoteOff 0.500000 1 74 64.500000
|
||||
NoteOn 0.000000 1 77 84.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 82 94.000000
|
||||
NoteOff 0.500000 1 82 64.500000
|
||||
ControlChange 0.000000 1 4 96.000000
|
||||
NoteOn 0.000000 1 81 84.000000
|
||||
NoteOff 0.500000 1 81 64.500000
|
||||
NoteOn 0.000000 1 77 74.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 75 64.000000
|
||||
NoteOff 0.500000 1 75 64.500000
|
||||
NoteOn 0.000000 1 72 54.000000
|
||||
NoteOff 0.500000 1 72 64.500000
|
||||
ControlChange 0.000000 1 4 116.000000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 0.500000 1 70 64.500000
|
||||
NoteOn 0.000000 1 74 74.000000
|
||||
NoteOff 0.500000 1 74 64.500000
|
||||
NoteOn 0.000000 1 77 84.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 82 94.000000
|
||||
NoteOff 0.500000 1 82 64.500000
|
||||
ControlChange 0.000000 1 4 108.000000
|
||||
NoteOn 0.000000 1 81 84.000000
|
||||
NoteOff 0.500000 1 81 64.500000
|
||||
NoteOn 0.000000 1 77 74.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 75 64.000000
|
||||
NoteOff 0.500000 1 75 64.500000
|
||||
NoteOn 0.000000 1 72 54.000000
|
||||
NoteOff 0.500000 1 72 64.500000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 1.000000 1 70 64.500000
|
||||
/* Howdy!! ToolKit96cpp SKINI File, Perry Cook */
|
||||
/**** BASS ****/
|
||||
ControlChange 0.000000 1 1 20.000000
|
||||
ControlChange 0.000000 1 4 8.000000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 0.500000 1 40 64.500000
|
||||
NoteOn 0.000000 1 44 74.000000
|
||||
NoteOff 0.500000 1 44 64.500000
|
||||
NoteOn 0.000000 1 47 84.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 52 94.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 0.000000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 64.500000
|
||||
NoteOn 0.000000 1 47 74.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 42 54.000000
|
||||
NoteOff 0.500000 1 42 64.500000
|
||||
ControlChange 0.000000 1 4 20.000000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 0.500000 1 40 64.500000
|
||||
NoteOn 0.000000 1 44 74.000000
|
||||
NoteOff 0.500000 1 44 64.500000
|
||||
NoteOn 0.000000 1 47 84.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 52 94.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 12.000000
|
||||
NoteOn 0.000000 1 51 84.000000
|
||||
NoteOff 0.500000 1 51 64.500000
|
||||
NoteOn 0.000000 1 47 74.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 42 54.000000
|
||||
NoteOff 0.500000 1 42 64.500000
|
||||
NoteOn 0.000000 1 40 64.000000
|
||||
NoteOff 1.000000 1 40 64.500000
|
||||
/**** TENOR ****/
|
||||
ControlChange 0.000000 1 4 40.000000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 49 74.000000
|
||||
NoteOff 0.500000 1 49 64.500000
|
||||
NoteOn 0.000000 1 52 84.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 57 94.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
ControlChange 0.000000 1 4 32.000000
|
||||
NoteOn 0.000000 1 56 84.000000
|
||||
NoteOff 0.500000 1 56 64.500000
|
||||
NoteOn 0.000000 1 52 74.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 47 54.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
ControlChange 0.000000 1 4 52.000000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 0.500000 1 45 64.500000
|
||||
NoteOn 0.000000 1 49 74.000000
|
||||
NoteOff 0.500000 1 49 64.500000
|
||||
NoteOn 0.000000 1 52 84.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 57 94.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
ControlChange 0.000000 1 4 44.000000
|
||||
NoteOn 0.000000 1 56 84.000000
|
||||
NoteOff 0.500000 1 56 64.500000
|
||||
NoteOn 0.000000 1 52 74.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 47 54.000000
|
||||
NoteOff 0.500000 1 47 64.500000
|
||||
NoteOn 0.000000 1 45 64.000000
|
||||
NoteOff 1.000000 1 45 64.500000
|
||||
/**** ALTO ****/
|
||||
ControlChange 0.000000 1 4 72.000000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 54 74.000000
|
||||
NoteOff 0.500000 1 54 64.500000
|
||||
NoteOn 0.000000 1 57 84.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 62 94.000000
|
||||
NoteOff 0.500000 1 62 64.500000
|
||||
ControlChange 0.000000 1 4 64.000000
|
||||
NoteOn 0.000000 1 61 84.000000
|
||||
NoteOff 0.500000 1 61 64.500000
|
||||
NoteOn 0.000000 1 57 74.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 55 64.000000
|
||||
NoteOff 0.500000 1 55 64.500000
|
||||
NoteOn 0.000000 1 52 54.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
ControlChange 0.000000 1 4 84.000000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 0.500000 1 50 64.500000
|
||||
NoteOn 0.000000 1 54 74.000000
|
||||
NoteOff 0.500000 1 54 64.500000
|
||||
NoteOn 0.000000 1 57 84.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 62 94.000000
|
||||
NoteOff 0.500000 1 62 64.500000
|
||||
ControlChange 0.000000 1 4 76.000000
|
||||
NoteOn 0.000000 1 61 84.000000
|
||||
NoteOff 0.500000 1 61 64.500000
|
||||
NoteOn 0.000000 1 57 74.000000
|
||||
NoteOff 0.500000 1 57 64.500000
|
||||
NoteOn 0.000000 1 55 64.000000
|
||||
NoteOff 0.500000 1 55 64.500000
|
||||
NoteOn 0.000000 1 52 54.000000
|
||||
NoteOff 0.500000 1 52 64.500000
|
||||
NoteOn 0.000000 1 50 64.000000
|
||||
NoteOff 1.000000 1 50 64.500000
|
||||
/**** SOPRANO ****/
|
||||
ControlChange 0.000000 1 4 104.000000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 0.500000 1 70 64.500000
|
||||
NoteOn 0.000000 1 74 74.000000
|
||||
NoteOff 0.500000 1 74 64.500000
|
||||
NoteOn 0.000000 1 77 84.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 82 94.000000
|
||||
NoteOff 0.500000 1 82 64.500000
|
||||
ControlChange 0.000000 1 4 96.000000
|
||||
NoteOn 0.000000 1 81 84.000000
|
||||
NoteOff 0.500000 1 81 64.500000
|
||||
NoteOn 0.000000 1 77 74.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 75 64.000000
|
||||
NoteOff 0.500000 1 75 64.500000
|
||||
NoteOn 0.000000 1 72 54.000000
|
||||
NoteOff 0.500000 1 72 64.500000
|
||||
ControlChange 0.000000 1 4 116.000000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 0.500000 1 70 64.500000
|
||||
NoteOn 0.000000 1 74 74.000000
|
||||
NoteOff 0.500000 1 74 64.500000
|
||||
NoteOn 0.000000 1 77 84.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 82 94.000000
|
||||
NoteOff 0.500000 1 82 64.500000
|
||||
ControlChange 0.000000 1 4 108.000000
|
||||
NoteOn 0.000000 1 81 84.000000
|
||||
NoteOff 0.500000 1 81 64.500000
|
||||
NoteOn 0.000000 1 77 74.000000
|
||||
NoteOff 0.500000 1 77 64.500000
|
||||
NoteOn 0.000000 1 75 64.000000
|
||||
NoteOff 0.500000 1 75 64.500000
|
||||
NoteOn 0.000000 1 72 54.000000
|
||||
NoteOff 0.500000 1 72 64.500000
|
||||
NoteOn 0.000000 1 70 64.000000
|
||||
NoteOff 1.000000 1 70 64.500000
|
||||
|
||||
@@ -168,7 +168,7 @@ proc changePress {value} {
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend 0.0 1 %.3f" $value]
|
||||
puts $outID [format "PitchChange 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
# Tcl/Tk Bowed Bar Model GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
set press 64.0
|
||||
set pitch 64.0
|
||||
set cont1 127.0
|
||||
set cont2 20.0
|
||||
set cont4 127.0
|
||||
set cont11 0.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set struckbow 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Bowed Bar Controller"
|
||||
wm iconname . "bowedbar"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
frame .leftsid -bg black
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "NoteOff -1.0 1 %f 127" $pitch ]
|
||||
flush $outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn -1.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff -1.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID press cont1 cont4 cont11
|
||||
set patch $value
|
||||
puts $outID [format "ProgramChange -1.0 1 %i" $value]
|
||||
flush $outID
|
||||
set cont1 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch -1.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend -1.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc activateVel {} {
|
||||
global pitch
|
||||
noteOn $pitch 127
|
||||
printWhatz "ControlChange -1.0 1 " 65 0
|
||||
}
|
||||
|
||||
# Configure sliders
|
||||
frame .press -bg grey66
|
||||
|
||||
button .press.pos -text Pos. -bg grey66 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 65 127}
|
||||
button .press.vel -text Vel. -bg grey66 \
|
||||
-command activateVel
|
||||
|
||||
scale .press.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press\
|
||||
-orient horizontal -label "Pos on Bow / Vel of Bow" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 2} \
|
||||
-orient horizontal -label "Bowing Pressure" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .cont4 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 4} \
|
||||
-orient horizontal -label "Strike/Bow Position" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .cont11 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 11} \
|
||||
-orient horizontal -label "Integration" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .reson -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 1} \
|
||||
-orient horizontal -label "Mode Resonance" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
. config -bg grey20
|
||||
|
||||
frame .bowstruk -bg black
|
||||
radiobutton .bowstruk.bowed -text Bowed -bg grey66 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 64 127} \
|
||||
-value 1 -variable struckbow
|
||||
radiobutton .bowstruk.struck -text Struck -bg grey66 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 64 0} \
|
||||
-value 0 -variable struckbow
|
||||
|
||||
pack .press.pos -side left
|
||||
pack .press.bPressure -side left
|
||||
pack .press.vel -side left
|
||||
pack .press -padx 10 -pady 10
|
||||
pack .pitch -padx 10 -pady 10
|
||||
pack .cont2 -padx 10 -pady 10
|
||||
pack .cont4 -padx 10 -pady 10
|
||||
pack .cont11 -padx 10 -pady 10
|
||||
pack .reson -padx 10 -pady 10
|
||||
|
||||
pack .bowstruk.bowed -side left -padx 5
|
||||
pack .bowstruk.struck -side left -padx 5
|
||||
pack .bowstruk -pady 10
|
||||
|
||||
frame .noteOn -bg black
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
pack .noteOn -pady 10
|
||||
|
||||
bind all <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,177 +1,177 @@
|
||||
# Tcl/Tk Drum GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set press 127
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
|
||||
# Turn down the reverb
|
||||
puts $outID "ControlChange 0.0 1 44.0 0.0"
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Drum Controller"
|
||||
wm iconname . "drum"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure slider
|
||||
scale .bPressure -from 0 -to 128 -length 100 \
|
||||
-command {changePress } -variable press\
|
||||
-orient horizontal -label "Velocity" \
|
||||
-tickinterval 64 -showvalue true -bg grey66
|
||||
|
||||
pack .bPressure -pady 5 -padx 5
|
||||
|
||||
# Configure buttons
|
||||
frame .buttons -bg black
|
||||
frame .buttons.left -bg black
|
||||
frame .buttons.right -bg black
|
||||
|
||||
button .buttons.left.bass -text Bass -bg grey66 \
|
||||
-command { playDrum 36 } -width 7
|
||||
button .buttons.left.snare -text Snare -bg grey66 \
|
||||
-command { playDrum 38 } -width 7
|
||||
button .buttons.left.tomlo -text LoTom -bg grey66 \
|
||||
-command { playDrum 41 } -width 7
|
||||
button .buttons.left.tommid -text MidTom -bg grey66 \
|
||||
-command { playDrum 45 } -width 7
|
||||
button .buttons.left.tomhi -text HiTom -bg grey66 \
|
||||
-command { playDrum 50 } -width 7
|
||||
button .buttons.left.homer -text Homer -bg grey66 \
|
||||
-command { playDrum 90 } -width 7
|
||||
button .buttons.right.hat -text Hat -bg grey66 \
|
||||
-command { playDrum 42 } -width 7
|
||||
button .buttons.right.ride -text Ride -bg grey66 \
|
||||
-command { playDrum 46 } -width 7
|
||||
button .buttons.right.crash -text Crash -bg grey66 \
|
||||
-command { playDrum 49 } -width 7
|
||||
button .buttons.right.cowbel -text CowBel -bg grey66 \
|
||||
-command { playDrum 56 } -width 7
|
||||
button .buttons.right.tamb -text Tamb -bg grey66 \
|
||||
-command { playDrum 54 } -width 7
|
||||
button .buttons.right.homer -text Homer -bg grey66 \
|
||||
-command { playDrum 90 } -width 7
|
||||
|
||||
pack .buttons.left.bass -pady 5
|
||||
pack .buttons.left.snare -pady 5
|
||||
pack .buttons.left.tomlo -pady 5
|
||||
pack .buttons.left.tommid -pady 5
|
||||
pack .buttons.left.tomhi -pady 5
|
||||
pack .buttons.left.homer -pady 5
|
||||
pack .buttons.right.hat -pady 5
|
||||
pack .buttons.right.ride -pady 5
|
||||
pack .buttons.right.crash -pady 5
|
||||
pack .buttons.right.cowbel -pady 5
|
||||
pack .buttons.right.tamb -pady 5
|
||||
pack .buttons.right.homer -pady 5
|
||||
|
||||
pack .buttons.left -side left -pady 5 -padx 5
|
||||
pack .buttons.right -side right -pady 5 -padx 5
|
||||
pack .buttons -pady 5 -padx 5
|
||||
|
||||
# Configure exit button
|
||||
button .exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .exit -side bottom -pady 20
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc playDrum {value} {
|
||||
global press
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %i %f" $value $press]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global press
|
||||
set press $value
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
# Tcl/Tk Drum GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set press 127
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
|
||||
# Turn down the reverb
|
||||
puts $outID "ControlChange 0.0 1 44.0 0.0"
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Drum Controller"
|
||||
wm iconname . "drum"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure slider
|
||||
scale .bPressure -from 0 -to 128 -length 100 \
|
||||
-command {changePress } -variable press\
|
||||
-orient horizontal -label "Velocity" \
|
||||
-tickinterval 64 -showvalue true -bg grey66
|
||||
|
||||
pack .bPressure -pady 5 -padx 5
|
||||
|
||||
# Configure buttons
|
||||
frame .buttons -bg black
|
||||
frame .buttons.left -bg black
|
||||
frame .buttons.right -bg black
|
||||
|
||||
button .buttons.left.bass -text Bass -bg grey66 \
|
||||
-command { playDrum 36 } -width 7
|
||||
button .buttons.left.snare -text Snare -bg grey66 \
|
||||
-command { playDrum 38 } -width 7
|
||||
button .buttons.left.tomlo -text LoTom -bg grey66 \
|
||||
-command { playDrum 41 } -width 7
|
||||
button .buttons.left.tommid -text MidTom -bg grey66 \
|
||||
-command { playDrum 45 } -width 7
|
||||
button .buttons.left.tomhi -text HiTom -bg grey66 \
|
||||
-command { playDrum 50 } -width 7
|
||||
button .buttons.left.homer -text Homer -bg grey66 \
|
||||
-command { playDrum 90 } -width 7
|
||||
button .buttons.right.hat -text Hat -bg grey66 \
|
||||
-command { playDrum 42 } -width 7
|
||||
button .buttons.right.ride -text Ride -bg grey66 \
|
||||
-command { playDrum 46 } -width 7
|
||||
button .buttons.right.crash -text Crash -bg grey66 \
|
||||
-command { playDrum 49 } -width 7
|
||||
button .buttons.right.cowbel -text CowBel -bg grey66 \
|
||||
-command { playDrum 56 } -width 7
|
||||
button .buttons.right.tamb -text Tamb -bg grey66 \
|
||||
-command { playDrum 54 } -width 7
|
||||
button .buttons.right.homer -text Homer -bg grey66 \
|
||||
-command { playDrum 90 } -width 7
|
||||
|
||||
pack .buttons.left.bass -pady 5
|
||||
pack .buttons.left.snare -pady 5
|
||||
pack .buttons.left.tomlo -pady 5
|
||||
pack .buttons.left.tommid -pady 5
|
||||
pack .buttons.left.tomhi -pady 5
|
||||
pack .buttons.left.homer -pady 5
|
||||
pack .buttons.right.hat -pady 5
|
||||
pack .buttons.right.ride -pady 5
|
||||
pack .buttons.right.crash -pady 5
|
||||
pack .buttons.right.cowbel -pady 5
|
||||
pack .buttons.right.tamb -pady 5
|
||||
pack .buttons.right.homer -pady 5
|
||||
|
||||
pack .buttons.left -side left -pady 5 -padx 5
|
||||
pack .buttons.right -side right -pady 5 -padx 5
|
||||
pack .buttons -pady 5 -padx 5
|
||||
|
||||
# Configure exit button
|
||||
button .exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .exit -side bottom -pady 20
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc playDrum {value} {
|
||||
global press
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %i %f" $value $press]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global press
|
||||
set press $value
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,264 +1,264 @@
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont44 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set preset 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Modal Bar GUI"
|
||||
wm iconname . "modal"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
|
||||
# Configure preset radio buttons
|
||||
frame .radio1 -bg black
|
||||
frame .radio2 -bg black
|
||||
|
||||
radiobutton .radio1.0 -text Marimba -bg grey66 \
|
||||
-variable preset -value 0 -command { patchChange $preset }
|
||||
radiobutton .radio1.1 -text Vibraphone -bg grey66 \
|
||||
-variable preset -value 1 -command { patchChange $preset }
|
||||
radiobutton .radio1.2 -text Agogo -bg grey66 \
|
||||
-variable preset -value 2 -command { patchChange $preset }
|
||||
radiobutton .radio1.3 -text Wood1 -bg grey66 \
|
||||
-variable preset -value 3 -command { patchChange $preset }
|
||||
radiobutton .radio2.4 -text Reso -bg grey66 \
|
||||
-variable preset -value 4 -command { patchChange $preset }
|
||||
radiobutton .radio2.5 -text Wood2 -bg grey66 \
|
||||
-variable preset -value 5 -command { patchChange $preset }
|
||||
radiobutton .radio2.6 -text Beats -bg grey66 \
|
||||
-variable preset -value 6 -command { patchChange $preset }
|
||||
radiobutton .radio2.7 -text 2Fix -bg grey66 \
|
||||
-variable preset -value 7 -command { patchChange $preset }
|
||||
radiobutton .radio2.8 -text Clump -bg grey66 \
|
||||
-variable preset -value 8 -command { patchChange $preset }
|
||||
|
||||
pack .radio1.0 -side left -padx 5
|
||||
pack .radio1.1 -side left -padx 5 -pady 10
|
||||
pack .radio1.2 -side left -padx 5 -pady 10
|
||||
pack .radio1.3 -side left -padx 5 -pady 10
|
||||
pack .radio1
|
||||
pack .radio2.4 -side left -padx 5
|
||||
pack .radio2.5 -side left -padx 5
|
||||
pack .radio2.6 -side left -padx 5 -pady 10
|
||||
pack .radio2.7 -side left -padx 5 -pady 10
|
||||
pack .radio2.8 -side left -padx 5 -pady 10
|
||||
pack .radio2
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
|
||||
button .pretty -bitmap @$bitmappath/KModal.xbm \
|
||||
-background white -foreground black
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure reverb slider
|
||||
frame .reverb -bg black
|
||||
|
||||
scale .reverb.mix -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont44
|
||||
|
||||
pack .reverb.mix -padx 10 -pady 10
|
||||
pack .reverb
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Strike Vigor" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 2} \
|
||||
-orient horizontal -label "Stick Hardness" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont4 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 4} \
|
||||
-orient horizontal -label "Stick Position" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont11 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 11} \
|
||||
-orient horizontal -label "Disabled" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11 -state disabled
|
||||
|
||||
scale .right.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 1} \
|
||||
-orient horizontal -label "Direct Stick Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont2 -padx 10 -pady 10
|
||||
pack .right.cont4 -padx 10 -pady 10
|
||||
pack .right.cont11 -padx 10 -pady 10
|
||||
pack .right.cont1 -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %3.2f %3.2f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff 0.0 1 %3.2f %3.2f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID preset
|
||||
if {$preset == 1} {
|
||||
.right.cont11 config -state normal -label "Vibrato Gain"
|
||||
} else {
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
}
|
||||
printWhatz "ControlChange 0.0 1 " 16 $preset
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %2i %3.2f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch 0.0 1 %3.2f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend 0.0 1 %3.2f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID commtype d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont44 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set preset 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Modal Bar Interface"
|
||||
wm iconname . "modal"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
|
||||
# Configure preset radio buttons
|
||||
frame .radio1 -bg black
|
||||
frame .radio2 -bg black
|
||||
|
||||
radiobutton .radio1.0 -text Marimba -bg grey66 \
|
||||
-variable preset -value 0 -command { patchChange $preset }
|
||||
radiobutton .radio1.1 -text Vibraphone -bg grey66 \
|
||||
-variable preset -value 1 -command { patchChange $preset }
|
||||
radiobutton .radio1.2 -text Agogo -bg grey66 \
|
||||
-variable preset -value 2 -command { patchChange $preset }
|
||||
radiobutton .radio1.3 -text Wood1 -bg grey66 \
|
||||
-variable preset -value 3 -command { patchChange $preset }
|
||||
radiobutton .radio2.4 -text Reso -bg grey66 \
|
||||
-variable preset -value 4 -command { patchChange $preset }
|
||||
radiobutton .radio2.5 -text Wood2 -bg grey66 \
|
||||
-variable preset -value 5 -command { patchChange $preset }
|
||||
radiobutton .radio2.6 -text Beats -bg grey66 \
|
||||
-variable preset -value 6 -command { patchChange $preset }
|
||||
radiobutton .radio2.7 -text 2Fix -bg grey66 \
|
||||
-variable preset -value 7 -command { patchChange $preset }
|
||||
radiobutton .radio2.8 -text Clump -bg grey66 \
|
||||
-variable preset -value 8 -command { patchChange $preset }
|
||||
|
||||
pack .radio1.0 -side left -padx 5
|
||||
pack .radio1.1 -side left -padx 5 -pady 10
|
||||
pack .radio1.2 -side left -padx 5 -pady 10
|
||||
pack .radio1.3 -side left -padx 5 -pady 10
|
||||
pack .radio1
|
||||
pack .radio2.4 -side left -padx 5
|
||||
pack .radio2.5 -side left -padx 5
|
||||
pack .radio2.6 -side left -padx 5 -pady 10
|
||||
pack .radio2.7 -side left -padx 5 -pady 10
|
||||
pack .radio2.8 -side left -padx 5 -pady 10
|
||||
pack .radio2
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
|
||||
button .pretty -bitmap @$bitmappath/KModal.xbm \
|
||||
-background white -foreground black
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure reverb slider
|
||||
frame .reverb -bg black
|
||||
|
||||
scale .reverb.mix -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont44
|
||||
|
||||
pack .reverb.mix -padx 10 -pady 10
|
||||
pack .reverb
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Strike Vigor" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 2} \
|
||||
-orient horizontal -label "Stick Hardness" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont4 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 4} \
|
||||
-orient horizontal -label "Stick Position" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont11 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 11} \
|
||||
-orient horizontal -label "Disabled" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11 -state disabled
|
||||
|
||||
scale .right.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 1} \
|
||||
-orient horizontal -label "Direct Stick Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont2 -padx 10 -pady 10
|
||||
pack .right.cont4 -padx 10 -pady 10
|
||||
pack .right.cont11 -padx 10 -pady 10
|
||||
pack .right.cont1 -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %3.2f %3.2f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff 0.0 1 %3.2f %3.2f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID preset
|
||||
if {$preset == 1} {
|
||||
.right.cont11 config -state normal -label "Vibrato Gain"
|
||||
} else {
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
}
|
||||
printWhatz "ControlChange 0.0 1 " 16 $preset
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %2i %3.2f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch 0.0 1 %3.2f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchChange 0.0 1 %3.2f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID commtype d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,445 +1,445 @@
|
||||
# Tcl/Tk Physical Model GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 0.0
|
||||
set cont2 20.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont44 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set oldpatch 0
|
||||
set patchnum 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Physical Model Controller"
|
||||
wm iconname . "physical"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure patch change buttons
|
||||
frame .radios1 -bg black
|
||||
frame .radios2 -bg black
|
||||
|
||||
radiobutton .radios1.clar -text "Clarinet" -bg grey66 \
|
||||
-variable patchnum -value 0 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.hole -text "BlowHole" -bg grey66 \
|
||||
-variable patchnum -value 1 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.fony -text "Saxofony" -bg grey66 \
|
||||
-variable patchnum -value 2 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.flut -text "Flute" -bg grey66 \
|
||||
-variable patchnum -value 3 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.bras -text "Brass" -bg grey66 \
|
||||
-variable patchnum -value 4 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.botl -text "BlowBotl" -bg grey66 \
|
||||
-variable patchnum -value 5 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.bowd -text "Bowed" -bg grey66 \
|
||||
-variable patchnum -value 6 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.pluk -text "Plucked" -bg grey66 \
|
||||
-variable patchnum -value 7 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.karp -text "StifKarp" -bg grey66 \
|
||||
-variable patchnum -value 8 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.sitr -text "Sitar" -bg grey66 \
|
||||
-variable patchnum -value 9 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.mand -text "Mandolin" -bg grey66 \
|
||||
-variable patchnum -value 10 -command { patchChange $patchnum }
|
||||
|
||||
pack .radios1.clar -side left -padx 5 -pady 10
|
||||
pack .radios1.hole -side left -padx 5 -pady 10
|
||||
pack .radios1.fony -side left -padx 5 -pady 10
|
||||
pack .radios1.flut -side left -padx 5 -pady 10
|
||||
pack .radios1.bras -side left -padx 5 -pady 10
|
||||
pack .radios1.botl -side left -padx 5 -pady 10
|
||||
pack .radios2.bowd -side left -padx 5 -pady 10
|
||||
pack .radios2.pluk -side left -padx 5 -pady 10
|
||||
pack .radios2.karp -side left -padx 5 -pady 10
|
||||
pack .radios2.sitr -side left -padx 5 -pady 10
|
||||
pack .radios2.mand -side left -padx 5 -pady 10
|
||||
|
||||
pack .radios1
|
||||
pack .radios2
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
button .pretty -bitmap @$bitmappath/Klar.xbm \
|
||||
-background white -foreground black
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure reverb slider
|
||||
frame .reverb -bg black
|
||||
|
||||
scale .reverb.mix -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont44
|
||||
|
||||
pack .reverb.mix -padx 10 -pady 10
|
||||
pack .reverb
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Breath Pressure" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 2} \
|
||||
-orient horizontal -label "Reed Stiffness" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont4 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 4} \
|
||||
-orient horizontal -label "Breath Noise" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont11 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 11} \
|
||||
-orient horizontal -label "Vibrato Rate" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 1} \
|
||||
-orient horizontal -label "Vibrato Amount" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont2 -padx 10 -pady 10
|
||||
pack .right.cont4 -padx 10 -pady 10
|
||||
pack .right.cont11 -padx 10 -pady 10
|
||||
pack .right.cont1 -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID bitmappath cont1 cont2 cont4 cont11 pitch oldpatch
|
||||
puts $outID [format "ProgramChange 0.0 1 %i" $value]
|
||||
if {$value==0} { # Clarinet
|
||||
.pretty config -bitmap @$bitmappath/Klar.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==1} { # BlowHole
|
||||
.pretty config -bitmap @$bitmappath/Klar.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Tonehole Openness"
|
||||
.right.cont1 config -state normal -label "Register Vent Openness"
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 0.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==2} { # Saxofony
|
||||
.pretty config -bitmap @$bitmappath/prcFunny.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Blow Position"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 26.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==3} { # Flute
|
||||
.pretty config -bitmap @$bitmappath/KFloot.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Embouchure Adjustment"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==4} { # Brass
|
||||
.pretty config -bitmap @$bitmappath/KHose.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Lip Adjustment"
|
||||
.right.cont4 config -state normal -label "Slide Length"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
set press 80.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
puts $outID [format "NoteOn 0.0 1 %3.2f %3.2f" $pitch $press]
|
||||
}
|
||||
if {$value==5} { # Bottle
|
||||
.pretty config -bitmap @$bitmappath/prcFunny.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==6} { # Bowed String
|
||||
.pretty config -bitmap @$bitmappath/KFiddl.xbm
|
||||
.left.bPressure config -state normal -label "Volume"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Bow Pressure"
|
||||
.right.cont4 config -state normal -label "Bow Position"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 4.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==7} { # Yer Basic Pluck
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state disabled -label "Disabled"
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
.right.cont1 config -state disabled -label "Disabled"
|
||||
}
|
||||
if {$value==8} { # Stiff String
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state normal -label "Pickup Position"
|
||||
.right.cont11 config -state normal -label "String Sustain"
|
||||
.right.cont1 config -state normal -label "String Stretch"
|
||||
set cont1 10.0
|
||||
set cont4 64.0
|
||||
set cont11 96.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==9} { # Sitar
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state disabled -label "Disabled"
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
.right.cont1 config -state disabled -label "Disabled"
|
||||
}
|
||||
if {$value==10} { # Mandolin
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Microphone Position and Gain"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Mandolin Body Size"
|
||||
.right.cont4 config -state normal -label "Pick Position"
|
||||
.right.cont11 config -state normal -label "String Sustain"
|
||||
.right.cont1 config -state normal -label "String Detune"
|
||||
set cont1 10.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 96.0
|
||||
set press 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
changePress $press
|
||||
}
|
||||
set oldpatch $value
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID patchnum
|
||||
if { $patchnum<7 || $patchnum>9 } {
|
||||
puts $outID [format "AfterTouch 0.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
# Tcl/Tk Physical Model GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 0.0
|
||||
set cont2 20.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont44 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set oldpatch 0
|
||||
set patchnum 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Physical Model Controller"
|
||||
wm iconname . "physical"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure patch change buttons
|
||||
frame .radios1 -bg black
|
||||
frame .radios2 -bg black
|
||||
|
||||
radiobutton .radios1.clar -text "Clarinet" -bg grey66 \
|
||||
-variable patchnum -value 0 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.hole -text "BlowHole" -bg grey66 \
|
||||
-variable patchnum -value 1 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.fony -text "Saxofony" -bg grey66 \
|
||||
-variable patchnum -value 2 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.flut -text "Flute" -bg grey66 \
|
||||
-variable patchnum -value 3 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.bras -text "Brass" -bg grey66 \
|
||||
-variable patchnum -value 4 -command { patchChange $patchnum }
|
||||
radiobutton .radios1.botl -text "BlowBotl" -bg grey66 \
|
||||
-variable patchnum -value 5 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.bowd -text "Bowed" -bg grey66 \
|
||||
-variable patchnum -value 6 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.pluk -text "Plucked" -bg grey66 \
|
||||
-variable patchnum -value 7 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.karp -text "StifKarp" -bg grey66 \
|
||||
-variable patchnum -value 8 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.sitr -text "Sitar" -bg grey66 \
|
||||
-variable patchnum -value 9 -command { patchChange $patchnum }
|
||||
radiobutton .radios2.mand -text "Mandolin" -bg grey66 \
|
||||
-variable patchnum -value 10 -command { patchChange $patchnum }
|
||||
|
||||
pack .radios1.clar -side left -padx 5 -pady 10
|
||||
pack .radios1.hole -side left -padx 5 -pady 10
|
||||
pack .radios1.fony -side left -padx 5 -pady 10
|
||||
pack .radios1.flut -side left -padx 5 -pady 10
|
||||
pack .radios1.bras -side left -padx 5 -pady 10
|
||||
pack .radios1.botl -side left -padx 5 -pady 10
|
||||
pack .radios2.bowd -side left -padx 5 -pady 10
|
||||
pack .radios2.pluk -side left -padx 5 -pady 10
|
||||
pack .radios2.karp -side left -padx 5 -pady 10
|
||||
pack .radios2.sitr -side left -padx 5 -pady 10
|
||||
pack .radios2.mand -side left -padx 5 -pady 10
|
||||
|
||||
pack .radios1
|
||||
pack .radios2
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
button .pretty -bitmap @$bitmappath/Klar.xbm \
|
||||
-background white -foreground black
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure reverb slider
|
||||
frame .reverb -bg black
|
||||
|
||||
scale .reverb.mix -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont44
|
||||
|
||||
pack .reverb.mix -padx 10 -pady 10
|
||||
pack .reverb
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Breath Pressure" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 2} \
|
||||
-orient horizontal -label "Reed Stiffness" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont4 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 4} \
|
||||
-orient horizontal -label "Breath Noise" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont11 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 11} \
|
||||
-orient horizontal -label "Vibrato Rate" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange 0.0 1 " 1} \
|
||||
-orient horizontal -label "Vibrato Amount" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont2 -padx 10 -pady 10
|
||||
pack .right.cont4 -padx 10 -pady 10
|
||||
pack .right.cont11 -padx 10 -pady 10
|
||||
pack .right.cont1 -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
noteOn $pitch $press
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID bitmappath cont1 cont2 cont4 cont11 pitch oldpatch
|
||||
puts $outID [format "ProgramChange 0.0 1 %i" $value]
|
||||
if {$value==0} { # Clarinet
|
||||
.pretty config -bitmap @$bitmappath/Klar.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==1} { # BlowHole
|
||||
.pretty config -bitmap @$bitmappath/Klar.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Tonehole Openness"
|
||||
.right.cont1 config -state normal -label "Register Vent Openness"
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 0.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==2} { # Saxofony
|
||||
.pretty config -bitmap @$bitmappath/prcFunny.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Reed Stiffness"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Blow Position"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 26.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==3} { # Flute
|
||||
.pretty config -bitmap @$bitmappath/KFloot.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Embouchure Adjustment"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==4} { # Brass
|
||||
.pretty config -bitmap @$bitmappath/KHose.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Lip Adjustment"
|
||||
.right.cont4 config -state normal -label "Slide Length"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 0.0
|
||||
set cont2 64.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
set press 80.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
puts $outID [format "NoteOn 0.0 1 %3.2f %3.2f" $pitch $press]
|
||||
}
|
||||
if {$value==5} { # Bottle
|
||||
.pretty config -bitmap @$bitmappath/prcFunny.xbm
|
||||
.left.bPressure config -state normal -label "Breath Pressure"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state normal -label "Breath Noise"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 20.0
|
||||
set cont4 20.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==6} { # Bowed String
|
||||
.pretty config -bitmap @$bitmappath/KFiddl.xbm
|
||||
.left.bPressure config -state normal -label "Volume"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Bow Pressure"
|
||||
.right.cont4 config -state normal -label "Bow Position"
|
||||
.right.cont11 config -state normal -label "Vibrato Rate"
|
||||
.right.cont1 config -state normal -label "Vibrato Amount"
|
||||
set cont1 4.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==7} { # Yer Basic Pluck
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state disabled -label "Disabled"
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
.right.cont1 config -state disabled -label "Disabled"
|
||||
}
|
||||
if {$value==8} { # Stiff String
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state normal -label "Pickup Position"
|
||||
.right.cont11 config -state normal -label "String Sustain"
|
||||
.right.cont1 config -state normal -label "String Stretch"
|
||||
set cont1 10.0
|
||||
set cont4 64.0
|
||||
set cont11 96.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
}
|
||||
if {$value==9} { # Sitar
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Pluck Strength"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state disabled -label "Disabled"
|
||||
.right.cont4 config -state disabled -label "Disabled"
|
||||
.right.cont11 config -state disabled -label "Disabled"
|
||||
.right.cont1 config -state disabled -label "Disabled"
|
||||
}
|
||||
if {$value==10} { # Mandolin
|
||||
.pretty config -bitmap @$bitmappath/KPluk.xbm
|
||||
.left.bPressure config -state normal -label "Microphone Position and Gain"
|
||||
.left.pitch config -state normal -label "MIDI Note Number"
|
||||
.left.cont2 config -state normal -label "Mandolin Body Size"
|
||||
.right.cont4 config -state normal -label "Pick Position"
|
||||
.right.cont11 config -state normal -label "String Sustain"
|
||||
.right.cont1 config -state normal -label "String Detune"
|
||||
set cont1 10.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 96.0
|
||||
set press 64.0
|
||||
printWhatz "ControlChange 0.0 1 " 1 $cont1
|
||||
printWhatz "ControlChange 0.0 1 " 2 $cont2
|
||||
printWhatz "ControlChange 0.0 1 " 4 $cont4
|
||||
printWhatz "ControlChange 0.0 1 " 11 $cont11
|
||||
changePress $press
|
||||
}
|
||||
set oldpatch $value
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID patchnum
|
||||
if { $patchnum<7 || $patchnum>9 } {
|
||||
puts $outID [format "AfterTouch 0.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchChange 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,275 +1,277 @@
|
||||
# Tcl/Tk Shakers GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set press 64.0
|
||||
set cont1 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont99 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set patchnum 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Shakers Controller"
|
||||
wm iconname . "shakers"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure sliders
|
||||
frame .right -bg black
|
||||
|
||||
scale .right.bPressure -from 0 -to 128 -length 300 \
|
||||
-command {changePress } -variable press\
|
||||
-orient horizontal -label "Shake Energy" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .right.cont2 -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 11} \
|
||||
-orient horizontal -label "(<--High) System Damping (Low-->)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont3 -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 4} \
|
||||
-orient horizontal -label "Number of Objects" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.vibrato -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 1} \
|
||||
-orient horizontal -label "Resonance Center Freq." \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
scale .right.reverb -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont99
|
||||
|
||||
pack .right.bPressure -padx 10 -pady 10
|
||||
pack .right.vibrato -padx 10 -pady 10
|
||||
pack .right.cont2 -padx 10 -pady 10
|
||||
pack .right.cont3 -padx 10 -pady 10
|
||||
pack .right.reverb -padx 10 -pady 10
|
||||
|
||||
pack .right -side right -padx 5 -pady 5
|
||||
|
||||
# Configure radio buttons
|
||||
frame .buttons -bg black
|
||||
frame .buttons.columns -bg black
|
||||
frame .buttons.columns.left1 -bg black
|
||||
frame .buttons.columns.left2 -bg black
|
||||
|
||||
radiobutton .buttons.columns.left1.maraca -text Maraca -bg grey66 \
|
||||
-command { patchChange 0 } -variable patchnum -width 12 \
|
||||
-justify left -value 0
|
||||
radiobutton .buttons.columns.left1.sekere -text Sekere -bg grey66 \
|
||||
-command { patchChange 2 } -variable patchnum -width 12 \
|
||||
-justify left -value 2
|
||||
radiobutton .buttons.columns.left1.cabasa -text Cabasa -bg grey66 \
|
||||
-command { patchChange 1 } -variable patchnum -width 12 \
|
||||
-justify left -value 1
|
||||
radiobutton .buttons.columns.left1.bamboo -text Bamboo -bg grey66 \
|
||||
-command { patchChange 5 } -variable patchnum -width 12 \
|
||||
-justify left -value 5
|
||||
radiobutton .buttons.columns.left1.waterdrp -text "Water Drops" -bg grey66 \
|
||||
-command { patchChange 4 } -variable patchnum -width 12 \
|
||||
-justify left -value 4
|
||||
radiobutton .buttons.columns.left1.tambourn -text Tambourine -bg grey66 \
|
||||
-command { patchChange 6 } -variable patchnum -width 12 \
|
||||
-justify left -value 6
|
||||
radiobutton .buttons.columns.left1.sleighbl -text "Sleigh Bells" -bg grey66 \
|
||||
-command { patchChange 7 } -variable patchnum -width 12 \
|
||||
-justify left -value 7
|
||||
radiobutton .buttons.columns.left1.guiro -text Guiro -bg grey66 \
|
||||
-command { patchChange 3 } -variable patchnum -width 12 \
|
||||
-justify left -value 3
|
||||
radiobutton .buttons.columns.left1.stix1 -text Sticks -bg grey66 \
|
||||
-command { patchChange 8 } -variable patchnum -width 12 \
|
||||
-justify left -value 8
|
||||
radiobutton .buttons.columns.left1.crunch1 -text Crunch -bg grey66 \
|
||||
-command { patchChange 9 } -variable patchnum -width 12 \
|
||||
-justify left -value 9
|
||||
radiobutton .buttons.columns.left1.wrench -text Wrench -bg grey66 \
|
||||
-command { patchChange 10 } -variable patchnum -width 12 \
|
||||
-justify left -value 10
|
||||
radiobutton .buttons.columns.left2.sandpapr -text "Sand Paper" -bg grey66 \
|
||||
-command { patchChange 11 } -variable patchnum -width 12 \
|
||||
-justify left -value 11
|
||||
radiobutton .buttons.columns.left2.cokecan -text "Coke Can" -bg grey66 \
|
||||
-command { patchChange 12 } -variable patchnum -width 12 \
|
||||
-justify left -value 12
|
||||
radiobutton .buttons.columns.left2.nextmug -text "NeXT Mug" -bg grey66 \
|
||||
-command { patchChange 13 } -variable patchnum -width 12 \
|
||||
-justify left -value 13
|
||||
radiobutton .buttons.columns.left2.pennymug -text "Mug & Penny" -bg grey66 \
|
||||
-command { patchChange 14 } -variable patchnum -width 12 \
|
||||
-justify left -value 14
|
||||
radiobutton .buttons.columns.left2.nicklemug -text "Mug & Nickle" -bg grey66 \
|
||||
-command { patchChange 15 } -variable patchnum -width 12 \
|
||||
-justify left -value 15
|
||||
radiobutton .buttons.columns.left2.dimemug -text "Mug & Dime" -bg grey66 \
|
||||
-command { patchChange 16 } -variable patchnum -width 12 \
|
||||
-justify left -value 16
|
||||
radiobutton .buttons.columns.left2.quartermug -text "Mug & Quarter" -bg grey66 \
|
||||
-command { patchChange 17 } -variable patchnum -width 12 \
|
||||
-justify left -value 17
|
||||
radiobutton .buttons.columns.left2.francmug -text "Mug & Franc" -bg grey66 \
|
||||
-command { patchChange 18 } -variable patchnum -width 12 \
|
||||
-justify left -value 18
|
||||
radiobutton .buttons.columns.left2.pesomug -text "Mug & Peso" -bg grey66 \
|
||||
-command { patchChange 19 } -variable patchnum -width 12 \
|
||||
-justify left -value 19
|
||||
radiobutton .buttons.columns.left2.bigrocks -text "Big Rocks" -bg grey66 \
|
||||
-command { patchChange 20 } -variable patchnum -width 12 \
|
||||
-justify left -value 20
|
||||
radiobutton .buttons.columns.left2.littlerocks -text "Little Rocks" -bg grey66 \
|
||||
-command { patchChange 21 } -variable patchnum -width 12 \
|
||||
-justify left -value 21
|
||||
radiobutton .buttons.columns.left1.tunedbamboo -text "Tuned Bamboo" -bg grey66 \
|
||||
-command { patchChange 22 } -variable patchnum -width 12 \
|
||||
-justify left -value 22
|
||||
|
||||
pack .buttons.columns.left1.maraca -pady 5
|
||||
pack .buttons.columns.left1.sekere -pady 5
|
||||
pack .buttons.columns.left1.cabasa -pady 5
|
||||
pack .buttons.columns.left1.bamboo -pady 5
|
||||
pack .buttons.columns.left1.tunedbamboo -pady 5
|
||||
pack .buttons.columns.left1.waterdrp -pady 5
|
||||
pack .buttons.columns.left1.tambourn -pady 5
|
||||
pack .buttons.columns.left1.sleighbl -pady 5
|
||||
pack .buttons.columns.left1.guiro -pady 5
|
||||
pack .buttons.columns.left1.stix1 -pady 5
|
||||
pack .buttons.columns.left1.crunch1 -pady 5
|
||||
pack .buttons.columns.left1.wrench -pady 5
|
||||
pack .buttons.columns.left2.sandpapr -pady 5
|
||||
pack .buttons.columns.left2.cokecan -pady 5
|
||||
pack .buttons.columns.left2.nextmug -pady 5
|
||||
pack .buttons.columns.left2.pennymug -pady 5
|
||||
pack .buttons.columns.left2.nicklemug -pady 5
|
||||
pack .buttons.columns.left2.dimemug -pady 5
|
||||
pack .buttons.columns.left2.quartermug -pady 5
|
||||
pack .buttons.columns.left2.francmug -pady 5
|
||||
pack .buttons.columns.left2.pesomug -pady 5
|
||||
pack .buttons.columns.left2.bigrocks -pady 5
|
||||
pack .buttons.columns.left2.littlerocks -pady 5
|
||||
|
||||
pack .buttons.columns.left1 -side left -padx 10
|
||||
pack .buttons.columns.left2 -side left -padx 10
|
||||
pack .buttons.columns -padx 10 -side top
|
||||
|
||||
# Configure exit button
|
||||
button .buttons.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .buttons.exit -pady 10 -side bottom
|
||||
pack .buttons -pady 5
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
patchChange $patchnum
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID press
|
||||
puts $outID [format "NoteOn -1.0 1 %i $press" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch -1.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
# Tcl/Tk Shakers GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set press 64.0
|
||||
set cont1 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set cont99 24.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set patchnum 0
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Shakers Controller"
|
||||
wm iconname . "shakers"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure sliders
|
||||
frame .right -bg black
|
||||
|
||||
scale .right.bPressure -from 0 -to 128 -length 300 \
|
||||
-command {changePress } -variable press\
|
||||
-orient horizontal -label "Shake Energy" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .right.cont2 -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 11} \
|
||||
-orient horizontal -label "(<--High) System Damping (Low-->)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont3 -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 4} \
|
||||
-orient horizontal -label "Number of Objects" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.vibrato -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 1} \
|
||||
-orient horizontal -label "Resonance Center Freq." \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont1
|
||||
|
||||
scale .right.reverb -from 0 -to 128 -length 300 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 44} \
|
||||
-orient horizontal -label "Reverb Mix" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont99
|
||||
|
||||
pack .right.bPressure -padx 10 -pady 10
|
||||
pack .right.vibrato -padx 10 -pady 10
|
||||
pack .right.cont2 -padx 10 -pady 10
|
||||
pack .right.cont3 -padx 10 -pady 10
|
||||
pack .right.reverb -padx 10 -pady 10
|
||||
|
||||
pack .right -side right -padx 5 -pady 5
|
||||
|
||||
# Configure radio buttons
|
||||
frame .buttons -bg black
|
||||
frame .buttons.columns -bg black
|
||||
frame .buttons.columns.left1 -bg black
|
||||
frame .buttons.columns.left2 -bg black
|
||||
|
||||
radiobutton .buttons.columns.left1.maraca -text Maraca -bg grey66 \
|
||||
-command { patchChange 0 } -variable patchnum -width 12 \
|
||||
-justify left -value 0
|
||||
radiobutton .buttons.columns.left1.sekere -text Sekere -bg grey66 \
|
||||
-command { patchChange 2 } -variable patchnum -width 12 \
|
||||
-justify left -value 2
|
||||
radiobutton .buttons.columns.left1.cabasa -text Cabasa -bg grey66 \
|
||||
-command { patchChange 1 } -variable patchnum -width 12 \
|
||||
-justify left -value 1
|
||||
radiobutton .buttons.columns.left1.bamboo -text Bamboo -bg grey66 \
|
||||
-command { patchChange 5 } -variable patchnum -width 12 \
|
||||
-justify left -value 5
|
||||
radiobutton .buttons.columns.left1.waterdrp -text "Water Drops" -bg grey66 \
|
||||
-command { patchChange 4 } -variable patchnum -width 12 \
|
||||
-justify left -value 4
|
||||
radiobutton .buttons.columns.left1.tambourn -text Tambourine -bg grey66 \
|
||||
-command { patchChange 6 } -variable patchnum -width 12 \
|
||||
-justify left -value 6
|
||||
radiobutton .buttons.columns.left1.sleighbl -text "Sleigh Bells" -bg grey66 \
|
||||
-command { patchChange 7 } -variable patchnum -width 12 \
|
||||
-justify left -value 7
|
||||
radiobutton .buttons.columns.left1.guiro -text Guiro -bg grey66 \
|
||||
-command { patchChange 3 } -variable patchnum -width 12 \
|
||||
-justify left -value 3
|
||||
radiobutton .buttons.columns.left1.stix1 -text Sticks -bg grey66 \
|
||||
-command { patchChange 8 } -variable patchnum -width 12 \
|
||||
-justify left -value 8
|
||||
radiobutton .buttons.columns.left1.crunch1 -text Crunch -bg grey66 \
|
||||
-command { patchChange 9 } -variable patchnum -width 12 \
|
||||
-justify left -value 9
|
||||
radiobutton .buttons.columns.left1.wrench -text Wrench -bg grey66 \
|
||||
-command { patchChange 10 } -variable patchnum -width 12 \
|
||||
-justify left -value 10
|
||||
radiobutton .buttons.columns.left2.sandpapr -text "Sand Paper" -bg grey66 \
|
||||
-command { patchChange 11 } -variable patchnum -width 12 \
|
||||
-justify left -value 11
|
||||
radiobutton .buttons.columns.left2.cokecan -text "Coke Can" -bg grey66 \
|
||||
-command { patchChange 12 } -variable patchnum -width 12 \
|
||||
-justify left -value 12
|
||||
radiobutton .buttons.columns.left2.nextmug -text "NeXT Mug" -bg grey66 \
|
||||
-command { patchChange 13 } -variable patchnum -width 12 \
|
||||
-justify left -value 13
|
||||
radiobutton .buttons.columns.left2.pennymug -text "Mug & Penny" -bg grey66 \
|
||||
-command { patchChange 14 } -variable patchnum -width 12 \
|
||||
-justify left -value 14
|
||||
radiobutton .buttons.columns.left2.nicklemug -text "Mug & Nickle" -bg grey66 \
|
||||
-command { patchChange 15 } -variable patchnum -width 12 \
|
||||
-justify left -value 15
|
||||
radiobutton .buttons.columns.left2.dimemug -text "Mug & Dime" -bg grey66 \
|
||||
-command { patchChange 16 } -variable patchnum -width 12 \
|
||||
-justify left -value 16
|
||||
radiobutton .buttons.columns.left2.quartermug -text "Mug & Quarter" -bg grey66 \
|
||||
-command { patchChange 17 } -variable patchnum -width 12 \
|
||||
-justify left -value 17
|
||||
radiobutton .buttons.columns.left2.francmug -text "Mug & Franc" -bg grey66 \
|
||||
-command { patchChange 18 } -variable patchnum -width 12 \
|
||||
-justify left -value 18
|
||||
radiobutton .buttons.columns.left2.pesomug -text "Mug & Peso" -bg grey66 \
|
||||
-command { patchChange 19 } -variable patchnum -width 12 \
|
||||
-justify left -value 19
|
||||
radiobutton .buttons.columns.left2.bigrocks -text "Big Rocks" -bg grey66 \
|
||||
-command { patchChange 20 } -variable patchnum -width 12 \
|
||||
-justify left -value 20
|
||||
radiobutton .buttons.columns.left2.littlerocks -text "Little Rocks" -bg grey66 \
|
||||
-command { patchChange 21 } -variable patchnum -width 12 \
|
||||
-justify left -value 21
|
||||
radiobutton .buttons.columns.left1.tunedbamboo -text "Tuned Bamboo" -bg grey66 \
|
||||
-command { patchChange 22 } -variable patchnum -width 12 \
|
||||
-justify left -value 22
|
||||
|
||||
pack .buttons.columns.left1.maraca -pady 5
|
||||
pack .buttons.columns.left1.sekere -pady 5
|
||||
pack .buttons.columns.left1.cabasa -pady 5
|
||||
pack .buttons.columns.left1.bamboo -pady 5
|
||||
pack .buttons.columns.left1.tunedbamboo -pady 5
|
||||
pack .buttons.columns.left1.waterdrp -pady 5
|
||||
pack .buttons.columns.left1.tambourn -pady 5
|
||||
pack .buttons.columns.left1.sleighbl -pady 5
|
||||
pack .buttons.columns.left1.guiro -pady 5
|
||||
pack .buttons.columns.left1.stix1 -pady 5
|
||||
pack .buttons.columns.left1.crunch1 -pady 5
|
||||
pack .buttons.columns.left1.wrench -pady 5
|
||||
pack .buttons.columns.left2.sandpapr -pady 5
|
||||
pack .buttons.columns.left2.cokecan -pady 5
|
||||
pack .buttons.columns.left2.nextmug -pady 5
|
||||
pack .buttons.columns.left2.pennymug -pady 5
|
||||
pack .buttons.columns.left2.nicklemug -pady 5
|
||||
pack .buttons.columns.left2.dimemug -pady 5
|
||||
pack .buttons.columns.left2.quartermug -pady 5
|
||||
pack .buttons.columns.left2.francmug -pady 5
|
||||
pack .buttons.columns.left2.pesomug -pady 5
|
||||
pack .buttons.columns.left2.bigrocks -pady 5
|
||||
pack .buttons.columns.left2.littlerocks -pady 5
|
||||
|
||||
pack .buttons.columns.left1 -side left -padx 10
|
||||
pack .buttons.columns.left2 -side left -padx 10
|
||||
pack .buttons.columns -padx 10 -side top
|
||||
|
||||
# Configure exit button
|
||||
button .buttons.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .buttons.exit -pady 10 -side bottom
|
||||
pack .buttons -pady 5
|
||||
|
||||
#bind all <KeyPress> {
|
||||
bind . <KeyPress> {
|
||||
patchChange $patchnum
|
||||
}
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID press
|
||||
puts $outID [format "NoteOn -1.0 1 %i $press" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch -1.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
eval patchChange $patchnum
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,240 +1,233 @@
|
||||
# Tcl/Tk Voice GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set patchnum 16
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Voice Model Controller"
|
||||
wm iconname . "voice"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure patch change buttons
|
||||
frame .instChoice -bg black
|
||||
|
||||
radiobutton .instChoice.fm -text "FMVoice" -bg grey66 \
|
||||
-command { patchChange 14 } -value 14 -variable patchnum
|
||||
radiobutton .instChoice.form -text "Formant" -bg grey66 \
|
||||
-command { patchChange 15 } -value 15 -variable patchnum
|
||||
|
||||
pack .instChoice.fm -side left -padx 5
|
||||
pack .instChoice.form -side left -padx 5 -pady 10
|
||||
|
||||
pack .instChoice -side top
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
button .pretty -bitmap @$bitmappath/prcFunny.xbm \
|
||||
-background white -foreground black
|
||||
.pretty config -bitmap @$bitmappath/prc.xbm
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Loudness (Spectral Tilt)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 2} \
|
||||
-orient horizontal -label "Formant Q / Voiced/Un." \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 4} \
|
||||
-orient horizontal -label "Vowel (Bass, Tenor, Alto, Sop.)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont3 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 11} \
|
||||
-orient horizontal -label "Vibrato Rate" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.vibrato -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 1} \
|
||||
-orient horizontal -label "Vibrato Amount" \
|
||||
-tickinterval 32 -showvalue true -bg grey66\
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont1 -padx 10 -pady 10
|
||||
pack .right.cont2 -padx 10 -pady 10
|
||||
pack .right.cont3 -padx 10 -pady 10
|
||||
pack .right.vibrato -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch
|
||||
global outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn -1.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff -1.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID
|
||||
global bitmappath
|
||||
global cont1
|
||||
global cont2
|
||||
global cont4
|
||||
global cont11
|
||||
puts $outID [format "ProgramChange -1.0 1 %i" $value]
|
||||
if {$value==16} {
|
||||
.pretty config -bitmap @$bitmappath/KVoiceFM.xbm
|
||||
}
|
||||
if {$value==17} {
|
||||
.pretty config -bitmap @$bitmappath/KVoicForm.xbm
|
||||
}
|
||||
flush $outID
|
||||
set cont1 0.0
|
||||
set cont2 20.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch -1.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend -1.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
# Tcl/Tk Voice GUI for the Synthesis Toolkit (STK)
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set cont1 20.0
|
||||
set cont2 64.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
set outID "stdout"
|
||||
set commtype "stdout"
|
||||
set patchnum 17
|
||||
|
||||
# Configure main window
|
||||
wm title . "STK Voice Model Controller"
|
||||
wm iconname . "voice"
|
||||
. config -bg black
|
||||
|
||||
# Configure "communications" menu
|
||||
menu .menu -tearoff 0
|
||||
menu .menu.communication -tearoff 0
|
||||
.menu add cascade -label "Communication" -menu .menu.communication \
|
||||
-underline 0
|
||||
.menu.communication add radio -label "Console" -variable commtype \
|
||||
-value "stdout" -command { setComm }
|
||||
.menu.communication add radio -label "Socket" -variable commtype \
|
||||
-value "socket" -command { setComm }
|
||||
. configure -menu .menu
|
||||
|
||||
# Configure patch change buttons
|
||||
frame .instChoice -bg black
|
||||
|
||||
radiobutton .instChoice.fm -text "FMVoice" -bg grey66 \
|
||||
-command { patchChange 17 } -value 17 -variable patchnum
|
||||
radiobutton .instChoice.form -text "Formant" -bg grey66 \
|
||||
-command { patchChange 18 } -value 18 -variable patchnum
|
||||
|
||||
pack .instChoice.fm -side left -padx 5
|
||||
pack .instChoice.form -side left -padx 5 -pady 10
|
||||
|
||||
pack .instChoice -side top
|
||||
|
||||
# Configure bitmap display
|
||||
if {[file isdirectory bitmaps]} {
|
||||
set bitmappath bitmaps
|
||||
} else {
|
||||
set bitmappath tcl/bitmaps
|
||||
}
|
||||
button .pretty -bitmap @$bitmappath/KVoiceFM.xbm \
|
||||
-background white -foreground black
|
||||
pack .pretty -padx 5 -pady 10
|
||||
|
||||
# Configure "note-on" buttons
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
button .noteOn.off -text NoteOff -bg grey66 -command { noteOff $pitch 127.0 }
|
||||
button .noteOn.exit -text "Exit Program" -bg grey66 -command myExit
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn.off -side left -padx 5 -pady 10
|
||||
pack .noteOn.exit -side left -padx 5 -pady 10
|
||||
|
||||
pack .noteOn
|
||||
|
||||
# Configure sliders
|
||||
frame .left -bg black
|
||||
frame .right -bg black
|
||||
|
||||
scale .left.bPressure -from 0 -to 128 -length 200 \
|
||||
-command {changePress } -variable press \
|
||||
-orient horizontal -label "Loudness (Spectral Tilt)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
scale .left.cont1 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 2} \
|
||||
-orient horizontal -label "Formant Q / Voiced/Un." \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont2
|
||||
|
||||
scale .right.cont2 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 4} \
|
||||
-orient horizontal -label "Vowel (Bass, Tenor, Alto, Sop.)" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont4
|
||||
|
||||
scale .right.cont3 -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 11} \
|
||||
-orient horizontal -label "Vibrato Rate" \
|
||||
-tickinterval 32 -showvalue true -bg grey66 \
|
||||
-variable cont11
|
||||
|
||||
scale .right.vibrato -from 0 -to 128 -length 200 \
|
||||
-command {printWhatz "ControlChange -1.0 1 " 1} \
|
||||
-orient horizontal -label "Vibrato Amount" \
|
||||
-tickinterval 32 -showvalue true -bg grey66\
|
||||
-variable cont1
|
||||
|
||||
pack .left.bPressure -padx 10 -pady 10
|
||||
pack .left.pitch -padx 10 -pady 10
|
||||
pack .left.cont1 -padx 10 -pady 10
|
||||
pack .right.cont2 -padx 10 -pady 10
|
||||
pack .right.cont3 -padx 10 -pady 10
|
||||
pack .right.vibrato -padx 10 -pady 10
|
||||
|
||||
pack .left -side left
|
||||
pack .right -side right
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc noteOff {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOff 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc patchChange {value} {
|
||||
global outID bitmappath cont1 cont2 cont4 cont11
|
||||
puts $outID [format "ProgramChange 0.0 1 %i" $value]
|
||||
if {$value==16} {
|
||||
.pretty config -bitmap @$bitmappath/KVoiceFM.xbm
|
||||
}
|
||||
if {$value==17} {
|
||||
.pretty config -bitmap @$bitmappath/KVoicForm.xbm
|
||||
}
|
||||
flush $outID
|
||||
set cont1 0.0
|
||||
set cont2 20.0
|
||||
set cont4 64.0
|
||||
set cont11 64.0
|
||||
}
|
||||
|
||||
proc printWhatz {tag value1 value2 } {
|
||||
global outID
|
||||
puts $outID [format "%s %i %f" $tag $value1 $value2]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePress {value} {
|
||||
global outID
|
||||
puts $outID [format "AfterTouch 0.0 1 %f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchChange 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
# Socket connection procedure
|
||||
set d .socketdialog
|
||||
|
||||
proc setComm {} {
|
||||
global outID
|
||||
global commtype
|
||||
global d
|
||||
if {$commtype == "stdout"} {
|
||||
if { [string compare "stdout" $outID] } {
|
||||
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
|
||||
switch $i {
|
||||
0 {set commtype "socket"}
|
||||
1 {close $outID
|
||||
set outID "stdout"}
|
||||
}
|
||||
}
|
||||
} elseif { ![string compare "stdout" $outID] } {
|
||||
set sockport 2001
|
||||
set sockhost localhost
|
||||
toplevel $d
|
||||
wm title $d "STK Client Socket Connection"
|
||||
wm resizable $d 0 0
|
||||
grab $d
|
||||
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
|
||||
-background white -font {Helvetica 10 bold} \
|
||||
-wraplength 3i -justify left
|
||||
frame $d.sockhost
|
||||
entry $d.sockhost.entry -width 15
|
||||
label $d.sockhost.text -text "Socket Host:" \
|
||||
-font {Helvetica 10 bold}
|
||||
frame $d.sockport
|
||||
entry $d.sockport.entry -width 15
|
||||
label $d.sockport.text -text "Socket Port:" \
|
||||
-font {Helvetica 10 bold}
|
||||
pack $d.message -side top -padx 5 -pady 10
|
||||
pack $d.sockhost.text -side left -padx 1 -pady 2
|
||||
pack $d.sockhost.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockhost -side top -padx 5 -pady 2
|
||||
pack $d.sockport.text -side left -padx 1 -pady 2
|
||||
pack $d.sockport.entry -side right -padx 5 -pady 2
|
||||
pack $d.sockport -side top -padx 5 -pady 2
|
||||
$d.sockhost.entry insert 0 $sockhost
|
||||
$d.sockport.entry insert 0 $sockport
|
||||
frame $d.buttons
|
||||
button $d.buttons.cancel -text "Cancel" -bg grey66 \
|
||||
-command { set commtype "stdout"
|
||||
set outID "stdout"
|
||||
destroy $d }
|
||||
button $d.buttons.connect -text "Connect" -bg grey66 \
|
||||
-command {
|
||||
set sockhost [$d.sockhost.entry get]
|
||||
set sockport [$d.sockport.entry get]
|
||||
set err [catch {socket $sockhost $sockport} outID]
|
||||
|
||||
if {$err == 0} {
|
||||
destroy $d
|
||||
} else {
|
||||
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
|
||||
} }
|
||||
pack $d.buttons.cancel -side left -padx 5 -pady 10
|
||||
pack $d.buttons.connect -side right -padx 5 -pady 10
|
||||
pack $d.buttons -side bottom -padx 5 -pady 10
|
||||
}
|
||||
}
|
||||
|
||||
71
projects/demo/tcl/bitmaps/cokecan.xbm
Normal file
71
projects/demo/tcl/bitmaps/cokecan.xbm
Normal file
@@ -0,0 +1,71 @@
|
||||
#define cokecan_width 62
|
||||
#define cokecan_height 126
|
||||
static char cokecan_bits[] = {
|
||||
0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xc1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xc0,0xff,0x02,0x00,0x00,0xea,
|
||||
0xff,0xc1,0xc0,0x2b,0xa9,0x94,0x55,0xb5,0xfe,0xc0,0xc0,0xd5,0x02,0x00,0x80,
|
||||
0x54,0xfb,0xc0,0x60,0x4b,0x09,0x21,0x5a,0xaf,0xfd,0xc1,0xe0,0x55,0x45,0x04,
|
||||
0xa9,0xa4,0xee,0xc1,0xf0,0x96,0x90,0x4a,0xa4,0xda,0xfa,0xc3,0xb0,0x49,0x04,
|
||||
0x11,0x4a,0x51,0xed,0xc3,0xf0,0x96,0x42,0x44,0xaa,0xac,0xfd,0xc3,0xb8,0x6b,
|
||||
0x12,0x05,0x80,0xf2,0xee,0xc7,0xfc,0xbd,0x81,0x10,0xa5,0xa8,0xfb,0xc7,0xfc,
|
||||
0xb7,0x24,0x42,0x00,0xf5,0xef,0xcf,0xfe,0xff,0x02,0x00,0x48,0xa0,0xff,0xdf,
|
||||
0x7e,0x6f,0x01,0x00,0x00,0x55,0xff,0xdf,0xff,0xbd,0x02,0x02,0x22,0xc0,0xff,
|
||||
0xff,0xff,0x77,0x00,0x00,0x00,0xaa,0xfe,0xff,0xdf,0x9f,0xfc,0xb7,0xdb,0xaf,
|
||||
0xbd,0xff,0xff,0x36,0x14,0x88,0x94,0x8a,0xfe,0xfe,0xff,0x2f,0xf4,0xef,0xfa,
|
||||
0x4f,0xfd,0xff,0xef,0x9d,0x04,0x00,0x02,0xa9,0xff,0xff,0xbf,0x2f,0x00,0x60,
|
||||
0x08,0xa8,0xf6,0xff,0xff,0x56,0x40,0xdc,0x23,0x42,0xff,0xff,0xff,0xbb,0x04,
|
||||
0x6c,0x83,0xa8,0xfa,0xff,0xff,0x4f,0x10,0xe8,0x23,0x44,0xdf,0xff,0xff,0x3f,
|
||||
0x00,0x00,0x00,0xa1,0xff,0xff,0xbf,0x55,0xf6,0xb5,0xbd,0x57,0xfd,0xff,0xfb,
|
||||
0x1f,0xda,0xbf,0xad,0xa7,0xff,0xff,0xff,0x2e,0x5a,0xf7,0xbf,0xcd,0xfe,0xfd,
|
||||
0xff,0x27,0x10,0x09,0xa4,0x56,0xef,0xff,0xdf,0x55,0x00,0x00,0x00,0x40,0x7f,
|
||||
0xff,0xff,0x0f,0x01,0x00,0x20,0xd5,0xfe,0xff,0xff,0x29,0x00,0xe8,0x07,0x50,
|
||||
0xff,0xff,0x7f,0x57,0x08,0xbb,0x12,0xc5,0xfb,0xff,0xf7,0xaf,0xc0,0x80,0x48,
|
||||
0x50,0xbf,0xff,0xff,0x9d,0x60,0xfc,0x63,0xd5,0xfe,0xff,0xff,0xbf,0x18,0xa3,
|
||||
0x4e,0xa0,0xff,0xff,0xbf,0xab,0xd0,0xfc,0xbf,0x75,0xfb,0xff,0xff,0x5f,0x2c,
|
||||
0xdf,0xb6,0xd2,0xef,0xff,0xfb,0xbf,0x94,0x6a,0xfb,0xb6,0xbf,0xff,0xdf,0x55,
|
||||
0xb2,0xfb,0xde,0xd6,0xff,0xff,0xff,0x3f,0x6a,0xc9,0xf6,0xed,0xff,0xff,0xff,
|
||||
0x6e,0xf3,0xff,0xb7,0xb5,0xfd,0xff,0xff,0xbb,0x1c,0xfd,0x71,0xd5,0xff,0xff,
|
||||
0xdf,0x5f,0xdc,0x7f,0x1c,0xb3,0xff,0xff,0xff,0xad,0x64,0x40,0xdf,0xeb,0xdb,
|
||||
0xff,0xff,0xbf,0x04,0xba,0x6b,0x67,0xff,0xff,0xef,0x57,0x54,0x9f,0xa2,0xa3,
|
||||
0xff,0xff,0x7f,0xbd,0x94,0x93,0x91,0xcb,0xff,0xfd,0xff,0x5f,0x04,0x10,0x05,
|
||||
0x52,0xfd,0xff,0xff,0xb7,0xec,0xff,0xff,0x8b,0xef,0xff,0xbb,0x5d,0xf1,0x98,
|
||||
0xb1,0xd1,0xfe,0xff,0xff,0xf7,0xda,0xe2,0xf7,0x49,0xff,0xfd,0xff,0x3e,0x79,
|
||||
0x6b,0xf4,0xd1,0xfd,0xff,0xff,0xb7,0xe1,0x99,0x71,0x44,0xff,0xfe,0xef,0xff,
|
||||
0xa0,0x9a,0xdd,0x68,0xf7,0xff,0x7f,0xaf,0xc0,0xff,0x3f,0xc4,0xff,0xfe,0xff,
|
||||
0xbb,0x80,0xfd,0x3b,0xa1,0xfe,0xff,0xff,0x7f,0x04,0xee,0x0f,0x54,0xdf,0xff,
|
||||
0xff,0x17,0x80,0x12,0x48,0x80,0xfe,0xfe,0x6f,0x5f,0x00,0x06,0x0e,0x2a,0xfb,
|
||||
0xff,0xff,0x5b,0x00,0x28,0x01,0x90,0xde,0xff,0xff,0x5f,0x02,0x00,0x90,0x44,
|
||||
0xfb,0xff,0xff,0x57,0x08,0x00,0x00,0xa1,0xfe,0xff,0x7d,0x6f,0x40,0x82,0x20,
|
||||
0x94,0xfb,0xff,0xef,0xb7,0xb8,0xff,0xfe,0xc1,0xfe,0xff,0xff,0xaf,0xf0,0x7f,
|
||||
0xd2,0x69,0xdf,0xff,0xbf,0xbb,0xf8,0xaf,0xee,0xa4,0xfd,0xff,0xff,0x5f,0x01,
|
||||
0x00,0x00,0xd8,0xff,0xff,0xff,0xb7,0x01,0x00,0x00,0xb6,0xfe,0xff,0xff,0xdd,
|
||||
0x04,0x00,0x00,0xfa,0xf7,0xff,0x6f,0x7f,0x57,0x55,0xa1,0xd5,0xbf,0xfb,0xff,
|
||||
0xab,0xa9,0xaa,0x8a,0xfe,0xfe,0xff,0xff,0xff,0x57,0xb5,0xf5,0xf6,0xff,0xff,
|
||||
0xff,0xbd,0xde,0xd6,0x56,0xbf,0xff,0xfb,0xff,0xef,0xb7,0x7f,0xff,0xfb,0xfb,
|
||||
0xff,0xf7,0x7f,0xe5,0xd5,0x05,0x4e,0xff,0xfb,0xbf,0xed,0x5b,0xff,0x57,0xb8,
|
||||
0xff,0xff,0xff,0xff,0xf4,0x6d,0xf9,0xcd,0xef,0xff,0xff,0xb6,0xac,0x56,0xdd,
|
||||
0xeb,0xfe,0xfb,0xff,0x7f,0x3a,0xab,0xa4,0xf3,0xff,0xff,0xef,0x57,0xb3,0x6b,
|
||||
0xfe,0xfd,0xff,0xff,0xff,0x3d,0x8b,0x74,0xb3,0x4a,0xf7,0xfb,0xfd,0x3f,0x59,
|
||||
0x20,0xdd,0xd6,0xff,0xff,0xf7,0x36,0x99,0x90,0x09,0x6e,0xff,0xff,0xdf,0x3f,
|
||||
0x7f,0x3f,0x7f,0xf9,0xff,0xff,0xff,0x2e,0x0b,0x98,0x65,0xe9,0xfb,0xfb,0xff,
|
||||
0xfb,0xfc,0x65,0x6e,0xf2,0xdf,0xff,0xff,0xbf,0xf7,0xde,0xfd,0x7f,0xff,0xff,
|
||||
0xff,0xef,0xad,0x6a,0xa7,0xfe,0xff,0xfb,0xbf,0x7d,0x7f,0xaa,0xa8,0xdb,0xff,
|
||||
0xff,0xff,0xef,0xad,0xb5,0xff,0xff,0xfd,0xff,0xff,0xbf,0xff,0xff,0x6a,0xff,
|
||||
0xf7,0xfb,0x7f,0xfb,0xb5,0xad,0xff,0xdb,0xff,0xfe,0xef,0x6f,0x7f,0xff,0xdb,
|
||||
0xfe,0xff,0xff,0xbf,0xff,0xeb,0x20,0xea,0x3b,0xfd,0xfb,0xff,0xfb,0xbd,0xdf,
|
||||
0x57,0x4f,0xff,0xff,0x7f,0x0f,0xf6,0xd6,0xee,0xf5,0xf5,0xff,0xff,0xbf,0x5d,
|
||||
0xfd,0xdd,0x9b,0x7a,0xf5,0xff,0x66,0xfd,0x73,0xdf,0x75,0xff,0xff,0xff,0xff,
|
||||
0xdb,0xaa,0x60,0xaf,0xfa,0xff,0xef,0x5b,0x77,0x29,0xdc,0xcb,0xfe,0xfe,0x7f,
|
||||
0xb7,0xdc,0x43,0xe9,0x2d,0xfe,0xff,0xff,0x8b,0x75,0xff,0xa7,0xc7,0xff,0xfb,
|
||||
0xff,0xf3,0xf6,0xd8,0xfe,0x6b,0xf3,0xff,0x7f,0x5f,0xdb,0x22,0xc5,0xf6,0xff,
|
||||
0xfe,0xfb,0x5f,0x7b,0xef,0xf7,0xeb,0xf9,0xff,0xff,0xf6,0xed,0xfe,0xdf,0x4f,
|
||||
0xfd,0xfd,0xff,0xef,0xfe,0xa2,0x6a,0xaf,0xfe,0xff,0xdf,0xff,0xaf,0xff,0xfd,
|
||||
0xff,0xff,0xff,0xff,0x7b,0xfb,0x5d,0x6f,0xfb,0xf7,0xfa,0x7f,0xef,0x6f,0xf7,
|
||||
0xfd,0xdf,0xff,0xff,0xff,0xbf,0xdf,0xbd,0xf7,0x7f,0xff,0xff,0xfb,0xff,0xfa,
|
||||
0xf7,0xde,0xfe,0xff,0xff,0xef,0xfb,0xdf,0xde,0xff,0xfb,0xff,0xff,0x7f,0x7f,
|
||||
0xbb,0xfb,0xf6,0xef,0xfd,0xff,0x97,0x80,0x00,0x00,0x00,0x14,0x55,0xff,0x7e,
|
||||
0x5b,0x6d,0x55,0xad,0xd5,0xf6,0xfd,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,
|
||||
0xfe,0xef,0xbf,0xbf,0xf7,0xff,0xff,0xdf,0xfc,0xbf,0xed,0xf6,0xbd,0xfd,0xff,
|
||||
0xc7,0xf0,0xff,0xff,0x7f,0xff,0xf7,0xff,0xc3,0xc0,0xff,0x7f,0xdb,0xff,0xff,
|
||||
0xff,0xc1,0xc0,0xff,0xee,0xff,0x77,0xff,0xff,0xc0,0x80,0xaf,0xbb,0xaa,0xfa,
|
||||
0xed,0x7f,0xc0};
|
||||
@@ -2,8 +2,9 @@
|
||||
//
|
||||
// Gary P. Scavone, 1999.
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "utilities.h"
|
||||
#include "Messager.h"
|
||||
|
||||
// STK Instrument Classes
|
||||
#include "Clarinet.h"
|
||||
@@ -24,6 +25,7 @@
|
||||
#include "PercFlut.h"
|
||||
#include "BeeThree.h"
|
||||
#include "FMVoices.h"
|
||||
#include "VoicForm.h"
|
||||
#include "Moog.h"
|
||||
#include "Simple.h"
|
||||
#include "Drummer.h"
|
||||
@@ -32,13 +34,13 @@
|
||||
#include "ModalBar.h"
|
||||
#include "Mesh2D.h"
|
||||
#include "Resonate.h"
|
||||
#include "Whistle.h"
|
||||
|
||||
// STK WvOut classes
|
||||
#if defined(__STK_REALTIME__)
|
||||
#include "RtWvOut.h"
|
||||
#endif
|
||||
|
||||
#define NUM_INSTS 26
|
||||
#define NUM_INSTS 28
|
||||
|
||||
// The order of the following list is important. The location of a particular
|
||||
// instrument in the list should correspond to that instrument's ProgramChange
|
||||
@@ -46,14 +48,14 @@
|
||||
char insts[NUM_INSTS][10] = { "Clarinet", "BlowHole", "Saxofony", "Flute", "Brass",
|
||||
"BlowBotl", "Bowed", "Plucked", "StifKarp", "Sitar", "Mandolin",
|
||||
"Rhodey", "Wurley", "TubeBell", "HevyMetl", "PercFlut",
|
||||
"BeeThree", "FMVoices", "Moog", "Simple", "Drummer",
|
||||
"BandedWG", "Shakers", "ModalBar", "Mesh2D", "Resonate" };
|
||||
"BeeThree", "FMVoices", "VoicForm", "Moog", "Simple", "Drummer",
|
||||
"BandedWG", "Shakers", "ModalBar", "Mesh2D", "Resonate", "Whistle" };
|
||||
|
||||
int voiceByNumber(int number, Instrmnt **instrument)
|
||||
{
|
||||
int temp = number;
|
||||
|
||||
if (number==0) *instrument = new Clarinet(10.0);
|
||||
if (number==0) *instrument = new Clarinet(10.0);
|
||||
else if (number==1) *instrument = new BlowHole(10.0);
|
||||
else if (number==2) *instrument = new Saxofony(10.0);
|
||||
else if (number==3) *instrument = new Flute(10.0);
|
||||
@@ -73,14 +75,16 @@ int voiceByNumber(int number, Instrmnt **instrument)
|
||||
else if (number==16) *instrument = new BeeThree;
|
||||
else if (number==17) *instrument = new FMVoices;
|
||||
|
||||
else if (number==18) *instrument = new Moog();
|
||||
else if (number==19) *instrument = new Simple();
|
||||
else if (number==20) *instrument = new Drummer();
|
||||
else if (number==21) *instrument = new BandedWG();
|
||||
else if (number==22) *instrument = new Shakers();
|
||||
else if (number==23) *instrument = new ModalBar();
|
||||
else if (number==24) *instrument = new Mesh2D(10, 10);
|
||||
else if (number==25) *instrument = new Resonate();
|
||||
else if (number==18) *instrument = new VoicForm();
|
||||
else if (number==19) *instrument = new Moog();
|
||||
else if (number==20) *instrument = new Simple();
|
||||
else if (number==21) *instrument = new Drummer();
|
||||
else if (number==22) *instrument = new BandedWG();
|
||||
else if (number==23) *instrument = new Shakers();
|
||||
else if (number==24) *instrument = new ModalBar();
|
||||
else if (number==25) *instrument = new Mesh2D(10, 10);
|
||||
else if (number==26) *instrument = new Resonate();
|
||||
else if (number==27) *instrument = new Whistle();
|
||||
|
||||
else {
|
||||
printf("\nUnknown instrument or program change requested!\n");
|
||||
@@ -113,15 +117,17 @@ void usage(char *function) {
|
||||
int i, j;
|
||||
|
||||
printf("\nuseage: %s Instrument flag(s) \n", function);
|
||||
printf(" where flag = -os <file name> for .snd audio output file,\n");
|
||||
printf(" where flag = -s RATE to specify a sample rate,\n");
|
||||
printf(" -n NUMBER specifies the number of voices to allocate,\n");
|
||||
printf(" -ow <file name> for .wav audio output file,\n");
|
||||
printf(" -os <file name> for .snd audio output file,\n");
|
||||
printf(" -om <file name> for .mat audio output file,\n");
|
||||
printf(" -oa <file name> for .aif audio output file,\n");
|
||||
#if defined(__STK_REALTIME__)
|
||||
printf(" -or for realtime audio output,\n");
|
||||
printf(" -ip for realtime control input by pipe,\n");
|
||||
printf(" (won't work under Win95/98),\n");
|
||||
printf(" -is for realtime control input by socket,\n");
|
||||
printf(" -is <port> for realtime control input by socket,\n");
|
||||
printf(" -im for realtime control input by MIDI,\n");
|
||||
#endif
|
||||
printf(" and Instrument = one of these:\n");
|
||||
@@ -145,9 +151,9 @@ int checkArgs(int numArgs, char *args[])
|
||||
{
|
||||
int w, i = 2, j = 0;
|
||||
int numOutputs = 0;
|
||||
char flags[16] = "";
|
||||
char flags[2][50] = {""};
|
||||
|
||||
if (numArgs < 3 || numArgs > 10) usage(args[0]);
|
||||
if (numArgs < 3 || numArgs > 17) usage(args[0]);
|
||||
|
||||
while (i < numArgs) {
|
||||
if (args[i][0] == '-') {
|
||||
@@ -156,14 +162,23 @@ int checkArgs(int numArgs, char *args[])
|
||||
(args[i][2] == 'w') || (args[i][2] == 'm')
|
||||
|| (args[i][2] == 'a') )
|
||||
numOutputs++;
|
||||
flags[0][j] = 'o';
|
||||
flags[1][j++] = args[i][2];
|
||||
}
|
||||
else if (args[i][1] == 'i') {
|
||||
if ( (args[i][2] != 's') && (args[i][2] != 'p') &&
|
||||
(args[i][2] != 'm') ) usage(args[0]);
|
||||
flags[0][j] = 'i';
|
||||
flags[1][j++] = args[i][2];
|
||||
}
|
||||
else if (args[i][1] == 's' && (i+1 < numArgs) && args[i+1][0] != '-' ) {
|
||||
Stk::setSampleRate( atoi(args[i+1]) );
|
||||
flags[0][j++] = 's';
|
||||
}
|
||||
else if (args[i][1] == 'n' && (i+1 < numArgs) && args[i+1][0] != '-' ) {
|
||||
flags[0][j++] = 'n';
|
||||
}
|
||||
else usage(args[0]);
|
||||
flags[j] = args[i][2];
|
||||
j++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
@@ -172,7 +187,7 @@ int checkArgs(int numArgs, char *args[])
|
||||
for (i=0; i<=j; i++) {
|
||||
w = i+1;
|
||||
while (w <= j) {
|
||||
if (flags[i] == flags[w]) {
|
||||
if (flags[0][i] == flags[0][w] && flags[1][i] == flags[1][w] ) {
|
||||
printf("\nError: Multiple command line flags of the same type specified.\n\n");
|
||||
usage(args[0]);
|
||||
}
|
||||
@@ -186,10 +201,28 @@ int checkArgs(int numArgs, char *args[])
|
||||
return numOutputs;
|
||||
}
|
||||
|
||||
int parseArgs(int numArgs, char *args[], WvOut **output)
|
||||
int countVoices(int nArgs, char *args[])
|
||||
{
|
||||
int i = 2, nInstruments = 1;
|
||||
|
||||
while (i < nArgs) {
|
||||
if ( strncmp( args[i], "-n", 2) == 0 ) {
|
||||
if ( i+1 < nArgs && args[i+1][0] != '-' ) {
|
||||
nInstruments = atoi( args[i+1] );
|
||||
if ( nInstruments < 1 ) nInstruments = 1;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return nInstruments;
|
||||
}
|
||||
|
||||
void parseArgs(int numArgs, char *args[], WvOut **output, Messager **messager)
|
||||
{
|
||||
int i = 2, j = 0;
|
||||
int inputMask = 0;
|
||||
int port = -1;
|
||||
char fileName[256];
|
||||
|
||||
while (i < numArgs) {
|
||||
@@ -207,6 +240,9 @@ int parseArgs(int numArgs, char *args[], WvOut **output)
|
||||
case 's':
|
||||
#if defined(__STK_REALTIME__)
|
||||
inputMask |= STK_SOCKET;
|
||||
// Check for an optional socket port argument.
|
||||
if ((i+1 < numArgs) && args[i+1][0] != '-')
|
||||
port = atoi(args[++i]);
|
||||
break;
|
||||
#else
|
||||
usage(args[0]);
|
||||
@@ -230,7 +266,7 @@ int parseArgs(int numArgs, char *args[], WvOut **output)
|
||||
|
||||
case 'r':
|
||||
#if defined(__STK_REALTIME__)
|
||||
output[j] = (WvOut *) new RtWvOut();
|
||||
output[j] = (WvOut *) new RtWvOut(2);
|
||||
j++;
|
||||
break;
|
||||
#else
|
||||
@@ -284,5 +320,11 @@ int parseArgs(int numArgs, char *args[], WvOut **output)
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return inputMask;
|
||||
|
||||
// Instantiate the messager.
|
||||
if ( inputMask & STK_SOCKET && port >= 0 )
|
||||
*messager = new Messager( inputMask, port );
|
||||
else
|
||||
*messager = new Messager( inputMask );
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "Instrmnt.h"
|
||||
#include "WvOut.h"
|
||||
#include "Messager.h"
|
||||
|
||||
int voiceByNumber(int number, Instrmnt **instrument);
|
||||
|
||||
@@ -13,4 +14,6 @@ void usage(char *function);
|
||||
|
||||
int checkArgs(int numArgs, char *args[]);
|
||||
|
||||
int parseArgs(int numArgs, char *args[], WvOut **output);
|
||||
int countVoices(int nArgs, char *args[]);
|
||||
|
||||
void parseArgs(int numArgs, char *args[], WvOut **output, Messager **messager);
|
||||
|
||||
0
projects/effects/Debug/.placeholder
Normal file
0
projects/effects/Debug/.placeholder
Normal file
@@ -1,51 +0,0 @@
|
||||
# Effects Makefile
|
||||
|
||||
OS = $(shell uname)
|
||||
|
||||
# The following definition indicates the relative location of
|
||||
# the core STK classes.
|
||||
STK_PATH = ../../src/
|
||||
|
||||
O_FILES = Stk.o Reverb.o PRCRev.o JCRev.o \
|
||||
NRev.o RtAudio.o Delay.o Filter.o \
|
||||
RtDuplex.o SKINI.o Envelope.o Echo.o \
|
||||
PitShift.o DelayL.o Chorus.o WvIn.o \
|
||||
WaveLoop.o Messager.o Thread.o Socket.o \
|
||||
RtMidi.o
|
||||
|
||||
|
||||
RM = /bin/rm
|
||||
|
||||
ifeq ($(OS),IRIX) # These are for SGI
|
||||
INSTR = effects
|
||||
CC = CC -O2 -D__IRIX_AL__ # -g -fullwarn -D__SGI_CC__
|
||||
LIBRARY = -L/usr/sgitcl/lib -laudio -lmd -lm -lpthread
|
||||
INCLUDE = -I../../include
|
||||
endif
|
||||
|
||||
ifeq ($(OS),Linux) # These are for Linux
|
||||
INSTR = effects
|
||||
CC = g++ -O3 -Wall -D__LINUX_OSS__ -D__LITTLE_ENDIAN__ # -g
|
||||
LIBRARY = -lpthread -lm #-lasound
|
||||
INCLUDE = -I../../include
|
||||
endif
|
||||
|
||||
%.o : $(STK_PATH)%.cpp
|
||||
$(CC) $(INCLUDE) -c $(<) -o $@
|
||||
|
||||
all: $(INSTR)
|
||||
|
||||
clean :
|
||||
rm *.o
|
||||
rm $(INSTR)
|
||||
|
||||
cleanIns :
|
||||
rm $(INSTR)
|
||||
|
||||
strip :
|
||||
strip $(INSTR)
|
||||
|
||||
effects: effects.cpp $(O_FILES)
|
||||
$(CC) $(INCLUDE) -o effects effects.cpp $(O_FILES) $(LIBRARY)
|
||||
|
||||
# $(O_FILES) :
|
||||
57
projects/effects/Makefile.in
Normal file
57
projects/effects/Makefile.in
Normal file
@@ -0,0 +1,57 @@
|
||||
### STK effects Makefile - for various flavors of unix
|
||||
|
||||
PROGRAMS = effects
|
||||
RM = /bin/rm
|
||||
SRC_PATH = ../../src
|
||||
OBJECT_PATH = @object_path@
|
||||
vpath %.o $(OBJECT_PATH)
|
||||
|
||||
OBJECTS = Stk.o Reverb.o PRCRev.o JCRev.o \
|
||||
NRev.o Delay.o Filter.o \
|
||||
SKINI.o Envelope.o Echo.o \
|
||||
PitShift.o DelayL.o Chorus.o \
|
||||
WvIn.o WaveLoop.o Messager.o
|
||||
|
||||
INCLUDE = @include@
|
||||
ifeq ($(strip $(INCLUDE)), )
|
||||
INCLUDE = ../../include
|
||||
endif
|
||||
vpath %.h $(INCLUDE)
|
||||
|
||||
CC = @CXX@
|
||||
DEFS = @byte_order@
|
||||
DEFS += @debug@
|
||||
CFLAGS = @cflags@
|
||||
CFLAGS += @warn@ -I$(INCLUDE)
|
||||
LIBRARY = @LIBS@
|
||||
LIBRARY += @frameworks@
|
||||
|
||||
REALTIME = @realtime@
|
||||
ifeq ($(REALTIME),yes)
|
||||
OBJECTS += RtMidi.o RtAudio.o RtDuplex.o Thread.o Socket.o
|
||||
DEFS += @sound_api@
|
||||
DEFS += @midiator@
|
||||
endif
|
||||
|
||||
RAWWAVES = @rawwaves@
|
||||
ifeq ($(strip $(RAWWAVES)), )
|
||||
RAWWAVES = ../../rawwaves/
|
||||
endif
|
||||
DEFS += -DRAWWAVE_PATH=\"$(RAWWAVES)\"
|
||||
|
||||
%.o : $(SRC_PATH)/%.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@
|
||||
|
||||
all : $(PROGRAMS)
|
||||
|
||||
effects: effects.cpp $(OBJECTS)
|
||||
$(CC) $(CFLAGS) $(DEFS) -o effects effects.cpp $(OBJECT_PATH)/*.o $(LIBRARY)
|
||||
|
||||
$(OBJECTS) : Stk.h
|
||||
|
||||
clean :
|
||||
-rm $(OBJECT_PATH)/*.o
|
||||
-rm $(PROGRAMS)
|
||||
|
||||
strip :
|
||||
strip $(PROGRAMS)
|
||||
@@ -4,43 +4,40 @@
|
||||
# the core STK classes.
|
||||
STK_PATH = ../../src/
|
||||
|
||||
O_FILES = $(STK_PATH)Stk.o $(STK_PATH)Envelope.o $(STK_PATH)Filter.o \
|
||||
$(STK_PATH)DelayL.o $(STK_PATH)Delay.o $(STK_PATH)SKINI.o \
|
||||
$(STK_PATH)WvIn.o $(STK_PATH)Reverb.o $(STK_PATH)PRCRev.o \
|
||||
$(STK_PATH)JCRev.o $(STK_PATH)NRev.o $(STK_PATH)RtAudio.o \
|
||||
$(STK_PATH)RtMidi.o $(STK_PATH)RtDuplex.o $(STK_PATH)Messager.o \
|
||||
$(STK_PATH)WaveLoop.o $(STK_PATH)Thread.o $(STK_PATH)Socket.o
|
||||
OBJECTS = $(STK_PATH)Stk.o $(STK_PATH)Envelope.o $(STK_PATH)Filter.o \
|
||||
$(STK_PATH)DelayL.o $(STK_PATH)Delay.o $(STK_PATH)SKINI.o \
|
||||
$(STK_PATH)WvIn.o $(STK_PATH)Reverb.o $(STK_PATH)PRCRev.o \
|
||||
$(STK_PATH)JCRev.o $(STK_PATH)NRev.o $(STK_PATH)RtAudio.o \
|
||||
$(STK_PATH)RtMidi.o $(STK_PATH)RtDuplex.o $(STK_PATH)Messager.o \
|
||||
$(STK_PATH)WaveLoop.o $(STK_PATH)Thread.o $(STK_PATH)Socket.o
|
||||
|
||||
O_LOCAL_FILES = Echo.o PitShift.o Chorus.o
|
||||
|
||||
RM = /bin/rm
|
||||
|
||||
INSTR = effects
|
||||
PROGRAMS = effects
|
||||
CC = CC -O2 -D__IRIX_AL__ # -g -fullwarn -D__SGI_CC__
|
||||
LIBRARY = -L/usr/sgitcl/lib -laudio -lmd -lm -lpthread
|
||||
INCLUDE = -I../../include/
|
||||
|
||||
.SUFFIXES: .cpp
|
||||
.cpp.o: $(O_FILES)
|
||||
.cpp.o: $(OBJECTS)
|
||||
$(CC) $(INCLUDE) -c -o $@ $<
|
||||
|
||||
all: $(INSTR)
|
||||
all: $(PROGRAMS)
|
||||
|
||||
effects: effects.cpp $(O_FILES) $(O_LOCAL_FILES)
|
||||
$(CC) -o effects effects.cpp $(O_FILES) $(O_LOCAL_FILES) $(LIBRARY) $(INCLUDE)
|
||||
effects: effects.cpp $(OBJECTS) $(O_LOCAL_FILES)
|
||||
$(CC) -o effects effects.cpp $(OBJECTS) $(O_LOCAL_FILES) $(LIBRARY) $(INCLUDE)
|
||||
|
||||
clean :
|
||||
rm *.o
|
||||
rm $(STK_PATH)*.o
|
||||
rm $(INSTR)
|
||||
|
||||
cleanIns :
|
||||
rm $(INSTR)
|
||||
rm $(PROGRAMS)
|
||||
|
||||
strip :
|
||||
strip $(INSTR)
|
||||
strip $(PROGRAMS)
|
||||
|
||||
# $(O_FILES) :
|
||||
# Project specific objects:
|
||||
|
||||
Echo.o: Echo.cpp
|
||||
$(CC) $(INCLUDE) -c Echo.cpp
|
||||
|
||||
@@ -16,29 +16,38 @@
|
||||
|
||||
void usage(void) {
|
||||
/* Error function in case of incorrect command-line argument specifications */
|
||||
printf("\nuseage: effects flag \n");
|
||||
printf(" where flag = -ip for realtime SKINI input by pipe\n");
|
||||
printf(" (won't work under Win95/98),\n");
|
||||
printf(" and flag = -is for realtime SKINI input by socket.\n");
|
||||
printf("\nuseage: effects flags \n");
|
||||
printf(" where flag = -s RATE to specify a sample rate,\n");
|
||||
printf(" flag = -ip for realtime SKINI input by pipe\n");
|
||||
printf(" (won't work under Win95/98),\n");
|
||||
printf(" and flag = -is <port> for realtime SKINI input by socket.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
if (argc != 2) usage();
|
||||
|
||||
int controlMask = 0;
|
||||
if (!strcmp(argv[1],"-is") )
|
||||
controlMask |= STK_SOCKET;
|
||||
else if (!strcmp(argv[1],"-ip") )
|
||||
controlMask |= STK_PIPE;
|
||||
else
|
||||
usage();
|
||||
if (argc < 2 || argc > 6) usage();
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects!!
|
||||
// it before instantiating any objects! If the sample rate is
|
||||
// specified in the command line, it will override this setting.
|
||||
Stk::setSampleRate(22050.0);
|
||||
|
||||
int port = -1;
|
||||
int controlMask = 0;
|
||||
for (int k=1; k<argc; k++ ) {
|
||||
if (!strcmp(argv[k],"-is") ) {
|
||||
controlMask |= STK_SOCKET;
|
||||
if (k+1 < argc && argv[k+1][0] != '-' ) port = atoi(argv[++k]);
|
||||
}
|
||||
else if (!strcmp(argv[k],"-ip") )
|
||||
controlMask |= STK_PIPE;
|
||||
else if (!strcmp(argv[k],"-s") && (k+1 < argc) && argv[k+1][0] != '-')
|
||||
Stk::setSampleRate( atoi(argv[++k]) );
|
||||
else
|
||||
usage();
|
||||
}
|
||||
|
||||
bool done;
|
||||
int effect = 0;
|
||||
MY_FLOAT lastSample, inSample;
|
||||
@@ -58,7 +67,10 @@ int main(int argc,char *argv[])
|
||||
inout = new RtDuplex(1, Stk::sampleRate(), 0, RT_BUFFER_SIZE, 10);
|
||||
|
||||
// Instantiate the input message controller.
|
||||
messager = new Messager( controlMask );
|
||||
if ( controlMask & STK_SOCKET && port >= 0 )
|
||||
messager = new Messager( controlMask, port );
|
||||
else
|
||||
messager = new Messager( controlMask );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
|
||||
0
projects/examples/Debug/.placeholder
Normal file
0
projects/examples/Debug/.placeholder
Normal file
@@ -1,58 +0,0 @@
|
||||
# Examples Makefile - Global version for Unix systems which have GNU
|
||||
# Makefile utilities installed.
|
||||
|
||||
OS = $(shell uname)
|
||||
|
||||
# You might have to modify the following path if you move things
|
||||
# around on your system.
|
||||
STK_SRC = ../../src/
|
||||
INCLUDE = -I../../include
|
||||
RM = /bin/rm
|
||||
|
||||
INSTR = sine play record io tcpIn tcpOut Moogy
|
||||
|
||||
ifeq ($(OS),Linux) # These are for Linux
|
||||
CC = g++ -O3 -Wall -D__LITTLE_ENDIAN__ -D__LINUX_OSS__
|
||||
LIBRARY = -lpthread -lm #-lasound
|
||||
endif
|
||||
|
||||
ifeq ($(OS),IRIX) # These are for SGI
|
||||
CC = CC -D__IRIX_AL__ # -g -fullwarn -O2
|
||||
LIBRARY = -L/usr/sgitcl/lib -laudio -lmd -lm -lpthread
|
||||
endif
|
||||
|
||||
%.o : $(STK_SRC)%.cpp
|
||||
$(CC) $(INCLUDE) -c $(<) -o $@
|
||||
|
||||
all: $(INSTR)
|
||||
|
||||
clean :
|
||||
rm *.o
|
||||
rm $(INSTR)
|
||||
|
||||
cleanIns :
|
||||
rm $(INSTR)
|
||||
|
||||
strip :
|
||||
strip $(INSTR)
|
||||
|
||||
play: play.cpp Stk.o WvIn.o WvOut.o RtWvOut.o RtAudio.o
|
||||
$(CC) -o play play.cpp Stk.o WvIn.o WvOut.o RtWvOut.o RtAudio.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
record: record.cpp Stk.o WvIn.o WvOut.o RtWvIn.o RtAudio.o
|
||||
$(CC) -o record record.cpp Stk.o WvIn.o WvOut.o RtWvIn.o RtAudio.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
sine: sine.cpp Stk.o WvIn.o WvOut.o WaveLoop.o
|
||||
$(CC) -o sine sine.cpp Stk.o WvIn.o WvOut.o WaveLoop.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
io: io.cpp Stk.o RtAudio.o RtDuplex.o
|
||||
$(CC) -o io io.cpp Stk.o RtAudio.o RtDuplex.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
tcpIn: tcpIn.cpp Stk.o WvIn.o TcpWvIn.o WvOut.o RtWvOut.o RtAudio.o Socket.o Thread.o
|
||||
$(CC) -o tcpIn tcpIn.cpp Stk.o WvIn.o Socket.o Thread.o TcpWvIn.o WvOut.o RtWvOut.o RtAudio.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
tcpOut: tcpOut.cpp Stk.o WvIn.o WvOut.o TcpWvOut.o Socket.o Thread.o
|
||||
$(CC) -o tcpOut tcpOut.cpp Stk.o WvIn.o WvOut.o Socket.o Thread.o TcpWvOut.o $(LIBRARY) $(INCLUDE)
|
||||
|
||||
Moogy: Moogy.cpp Stk.o WvIn.o WaveLoop.o WvOut.o RtWvOut.o RtAudio.o Instrmnt.o Sampler.o FormSwep.o Filter.o BiQuad.o Envelope.o ADSR.o OnePole.o Moog.o
|
||||
$(CC) -o Moogy Stk.o WvIn.o WaveLoop.o WvOut.o RtWvOut.o RtAudio.o Instrmnt.o Sampler.o FormSwep.o Filter.o BiQuad.o Envelope.o ADSR.o OnePole.o Moog.o Moogy.cpp $(LIBRARY) $(INCLUDE)
|
||||
68
projects/examples/Makefile.in
Normal file
68
projects/examples/Makefile.in
Normal file
@@ -0,0 +1,68 @@
|
||||
### STK examples Makefile - for various flavors of unix
|
||||
|
||||
PROGRAMS = sine play record io tcpIn tcpOut Moogy
|
||||
RM = /bin/rm
|
||||
SRC_PATH = ../../src
|
||||
OBJECT_PATH = @object_path@
|
||||
vpath %.o $(OBJECT_PATH)
|
||||
|
||||
INCLUDE = @include@
|
||||
ifeq ($(strip $(INCLUDE)), )
|
||||
INCLUDE = ../../include
|
||||
endif
|
||||
vpath %.h $(INCLUDE)
|
||||
|
||||
CC = @CXX@
|
||||
DEFS = @byte_order@
|
||||
DEFS += @debug@
|
||||
CFLAGS = @cflags@
|
||||
CFLAGS += @warn@ -I$(INCLUDE)
|
||||
LIBRARY = @LIBS@
|
||||
LIBRARY += @frameworks@
|
||||
|
||||
REALTIME = @realtime@
|
||||
ifeq ($(REALTIME),yes)
|
||||
DEFS += @sound_api@
|
||||
DEFS += @midiator@
|
||||
endif
|
||||
|
||||
RAWWAVES = @rawwaves@
|
||||
ifeq ($(strip $(RAWWAVES)), )
|
||||
RAWWAVES = ../../rawwaves/
|
||||
endif
|
||||
DEFS += -DRAWWAVE_PATH=\"$(RAWWAVES)\"
|
||||
|
||||
%.o : $(SRC_PATH)/%.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@
|
||||
|
||||
all : $(PROGRAMS)
|
||||
|
||||
$(OBJECTS) : Stk.h
|
||||
|
||||
clean :
|
||||
-rm $(OBJECT_PATH)/*.o
|
||||
-rm $(PROGRAMS)
|
||||
|
||||
strip :
|
||||
strip $(PROGRAMS)
|
||||
|
||||
play: play.cpp Stk.o WvIn.o WvOut.o RtWvOut.o RtAudio.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o play play.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/RtWvOut.o $(OBJECT_PATH)/RtAudio.o $(LIBRARY)
|
||||
|
||||
record: record.cpp Stk.o WvIn.o WvOut.o RtWvIn.o RtAudio.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o record record.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/RtWvIn.o $(OBJECT_PATH)/RtAudio.o $(LIBRARY)
|
||||
|
||||
sine: sine.cpp Stk.o WvIn.o WvOut.o WaveLoop.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o sine sine.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/WaveLoop.o $(LIBRARY)
|
||||
|
||||
io: io.cpp Stk.o RtAudio.o RtDuplex.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o io io.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/RtAudio.o $(OBJECT_PATH)/RtDuplex.o $(LIBRARY)
|
||||
|
||||
tcpIn: tcpIn.cpp Stk.o WvIn.o TcpWvIn.o WvOut.o RtWvOut.o RtAudio.o Socket.o Thread.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o tcpIn tcpIn.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/Socket.o $(OBJECT_PATH)/Thread.o $(OBJECT_PATH)/TcpWvIn.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/RtWvOut.o $(OBJECT_PATH)/RtAudio.o $(LIBRARY)
|
||||
|
||||
tcpOut: tcpOut.cpp Stk.o WvIn.o WvOut.o TcpWvOut.o Socket.o Thread.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o tcpOut tcpOut.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/Socket.o $(OBJECT_PATH)/Thread.o $(OBJECT_PATH)/TcpWvOut.o $(LIBRARY)
|
||||
|
||||
Moogy: Moogy.cpp Stk.o WvIn.o WaveLoop.o WvOut.o RtWvOut.o RtAudio.o Instrmnt.o Sampler.o FormSwep.o Filter.o BiQuad.o Envelope.o ADSR.o OnePole.o Moog.o
|
||||
$(CC) $(CFLAGS) $(DEFS) -o Moogy Moogy.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/WvIn.o $(OBJECT_PATH)/WaveLoop.o $(OBJECT_PATH)/WvOut.o $(OBJECT_PATH)/RtWvOut.o $(OBJECT_PATH)/RtAudio.o $(OBJECT_PATH)/Instrmnt.o $(OBJECT_PATH)/Sampler.o $(OBJECT_PATH)/FormSwep.o $(OBJECT_PATH)/Filter.o $(OBJECT_PATH)/BiQuad.o $(OBJECT_PATH)/Envelope.o $(OBJECT_PATH)/ADSR.o $(OBJECT_PATH)/OnePole.o $(OBJECT_PATH)/Moog.o $(LIBRARY)
|
||||
@@ -1,43 +1,43 @@
|
||||
/******************************************/
|
||||
/*
|
||||
A very basic example program which
|
||||
demonstrates how to play STK's Moog
|
||||
instrument.
|
||||
|
||||
By Gary P. Scavone, 2001.
|
||||
Thanks to Dirk Heise for the suggestion.
|
||||
|
||||
This particular program uses the Moog
|
||||
class, though any Instrmnt subclass will
|
||||
work. If you use a different instrument,
|
||||
however, you may need to update the O_FILES
|
||||
dependencies in the Makefile to successfully
|
||||
compile it.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WvOut.h"
|
||||
#include "RtWvOut.h"
|
||||
#include "Instrmnt.h"
|
||||
#include "Moog.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Instrmnt* instrument = new Moog();
|
||||
RtWvOut* output = new RtWvOut(1);
|
||||
|
||||
// Start the instrument with note number 60 and
|
||||
// a normalized velocity of 0.9.
|
||||
instrument->noteOn(70, 0.9);
|
||||
|
||||
// Run the instrument for 80000/SRATE seconds.
|
||||
MY_FLOAT *vector = new MY_FLOAT[16];
|
||||
for (int i=0; i<80000; i++) {
|
||||
output->tick(instrument->tick());
|
||||
}
|
||||
|
||||
delete vector;
|
||||
delete output;
|
||||
delete instrument;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
A very basic example program which
|
||||
demonstrates how to play STK's Moog
|
||||
instrument.
|
||||
|
||||
By Gary P. Scavone, 2001.
|
||||
Thanks to Dirk Heise for the suggestion.
|
||||
|
||||
This particular program uses the Moog
|
||||
class, though any Instrmnt subclass will
|
||||
work. If you use a different instrument,
|
||||
however, you may need to update the O_FILES
|
||||
dependencies in the Makefile to successfully
|
||||
compile it.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WvOut.h"
|
||||
#include "RtWvOut.h"
|
||||
#include "Instrmnt.h"
|
||||
#include "Moog.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Instrmnt* instrument = new Moog();
|
||||
RtWvOut* output = new RtWvOut(1);
|
||||
|
||||
// Start the instrument with note number 60 and
|
||||
// a normalized velocity of 0.9.
|
||||
instrument->noteOn(70, 0.9);
|
||||
|
||||
// Run the instrument for 80000/SRATE seconds.
|
||||
MY_FLOAT *vector = new MY_FLOAT[16];
|
||||
for (int i=0; i<80000; i++) {
|
||||
output->tick(instrument->tick());
|
||||
}
|
||||
|
||||
delete vector;
|
||||
delete output;
|
||||
delete instrument;
|
||||
return 0;
|
||||
}
|
||||
|
||||
0
projects/examples/Release/.placeholder
Normal file
0
projects/examples/Release/.placeholder
Normal file
@@ -1,87 +1,92 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program for realtime input/output
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program reads N channels of realtime
|
||||
audio input for a specified amount of time
|
||||
and immediately play them back in realtime
|
||||
(duplex mode). This program also demonstrates
|
||||
the use of FIFO scheduling priority. To be
|
||||
run with such priority, the program must be
|
||||
set suid (chmod +s) and owned by root.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtDuplex.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__OS_LINUX_) || defined(__OS_IRIX__)
|
||||
#include <sched.h>
|
||||
#endif
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: io N time \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" and time = the amount of time to run (in seconds).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc != 3) usage();
|
||||
|
||||
unsigned int channels = (unsigned int) atoi(argv[1]);
|
||||
float time = atof(argv[2]);
|
||||
|
||||
// Open the realtime duplex device.
|
||||
RtDuplex *inout = 0;
|
||||
try {
|
||||
inout = new RtDuplex(channels, Stk::sampleRate(), 0, RT_BUFFER_SIZE, 10);
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
#if defined(__OS_LINUX__) || defined(__OS_IRIX__)
|
||||
// Set schedulling priority to SCHED_FIFO.
|
||||
struct sched_param p;
|
||||
int min, max, priority;
|
||||
|
||||
if (!getuid() || !geteuid()) {
|
||||
min=sched_get_priority_min(SCHED_FIFO);
|
||||
max=sched_get_priority_max(SCHED_FIFO);
|
||||
priority=min+(max-min)/2;
|
||||
p.sched_priority=priority;
|
||||
if (sched_setscheduler(0, SCHED_FIFO, &p)==-1) {
|
||||
fprintf(stderr, "\nCould not activate scheduling with priority %d\n", priority);
|
||||
}
|
||||
seteuid(getuid());
|
||||
}
|
||||
#endif
|
||||
|
||||
// Here's the runtime loop
|
||||
unsigned long i, counter = 0;
|
||||
MY_FLOAT *newFrame = new MY_FLOAT[channels];
|
||||
const MY_FLOAT *lastFrame = inout->lastFrame();
|
||||
unsigned long samples = (unsigned long) (time * Stk::sampleRate());
|
||||
while ( counter < samples ) {
|
||||
for ( i=0; i<channels; i++ )
|
||||
newFrame[i] = lastFrame[i];
|
||||
lastFrame = inout->tickFrame( newFrame );
|
||||
counter++;
|
||||
#if defined(__OS_LINUX__) || defined(__OS_IRIX__)
|
||||
if ( counter % 1024 == 0 )
|
||||
sched_yield();
|
||||
#endif
|
||||
}
|
||||
|
||||
// Clean up
|
||||
delete [] newFrame;
|
||||
delete inout;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program for realtime input/output
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program reads N channels of realtime
|
||||
audio input for a specified amount of time
|
||||
and immediately play them back in realtime
|
||||
(duplex mode). This program also demonstrates
|
||||
the use of FIFO scheduling priority. To be
|
||||
run with such priority, the program must be
|
||||
set suid (chmod +s) and owned by root.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtDuplex.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__OS_LINUX_) || defined(__OS_IRIX__)
|
||||
#include <sched.h>
|
||||
#endif
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: io N time \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" and time = the amount of time to run (in seconds).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc != 3) usage();
|
||||
|
||||
unsigned int channels = (unsigned int) atoi(argv[1]);
|
||||
float time = atof(argv[2]);
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects! If the sample rate is
|
||||
// specified in the command line, it will override this setting.
|
||||
Stk::setSampleRate( 44100.0 );
|
||||
|
||||
// Open the realtime duplex device.
|
||||
RtDuplex *inout = 0;
|
||||
try {
|
||||
inout = new RtDuplex(channels, Stk::sampleRate(), 0, RT_BUFFER_SIZE, 10);
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
#if defined(__OS_LINUX__) || defined(__OS_IRIX__)
|
||||
// Set schedulling priority to SCHED_FIFO.
|
||||
struct sched_param p;
|
||||
int min, max, priority;
|
||||
|
||||
if (!getuid() || !geteuid()) {
|
||||
min=sched_get_priority_min(SCHED_FIFO);
|
||||
max=sched_get_priority_max(SCHED_FIFO);
|
||||
priority=min+(max-min)/2;
|
||||
p.sched_priority=priority;
|
||||
if (sched_setscheduler(0, SCHED_FIFO, &p)==-1) {
|
||||
fprintf(stderr, "\nCould not activate scheduling with priority %d\n", priority);
|
||||
}
|
||||
seteuid(getuid());
|
||||
}
|
||||
#endif
|
||||
|
||||
// Here's the runtime loop
|
||||
unsigned long i, counter = 0;
|
||||
MY_FLOAT *newFrame = new MY_FLOAT[channels];
|
||||
const MY_FLOAT *lastFrame = inout->lastFrame();
|
||||
unsigned long samples = (unsigned long) (time * Stk::sampleRate());
|
||||
while ( counter < samples ) {
|
||||
for ( i=0; i<channels; i++ )
|
||||
newFrame[i] = lastFrame[i];
|
||||
lastFrame = inout->tickFrame( newFrame );
|
||||
counter++;
|
||||
#if defined(__OS_LINUX__) || defined(__OS_IRIX__)
|
||||
if ( counter % 1024 == 0 )
|
||||
sched_yield();
|
||||
#endif
|
||||
}
|
||||
|
||||
// Clean up
|
||||
delete [] newFrame;
|
||||
delete inout;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to play an N channel
|
||||
soundfile.
|
||||
|
||||
This program will load WAV, SND, AIF, and
|
||||
MAT-file formatted files of various data
|
||||
types. If the audio system does not support
|
||||
the number of channels or sample rate of
|
||||
the soundfile, the program will stop.
|
||||
|
||||
By Gary P. Scavone, 2000 - 2002.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtWvOut.h"
|
||||
#include "WvIn.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: play file <rate>\n");
|
||||
printf(" where file = the file to play,\n");
|
||||
printf(" and rate = an optional playback rate.\n");
|
||||
printf(" (default = 1.0, can be negative)\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc < 2 || argc > 3) usage();
|
||||
|
||||
// Initialize our WvIn/WvOut pointers.
|
||||
RtWvOut *output = 0;
|
||||
WvIn *input = 0;
|
||||
|
||||
// Try to load the soundfile.
|
||||
try {
|
||||
input = new WvIn( (char *)argv[1] );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Set the global STK sample rate to the file rate.
|
||||
Stk::setSampleRate( input->getFileRate() );
|
||||
|
||||
// Set input read rate.
|
||||
float rate = 1.0;
|
||||
if ( argc == 3 ) rate = atof(argv[2]);
|
||||
input->setRate( rate );
|
||||
|
||||
// Find out how many channels we have.
|
||||
int channels = input->getChannels();
|
||||
|
||||
// Define and open the realtime output device
|
||||
try {
|
||||
output = new RtWvOut( channels, Stk::sampleRate(), 0, 512, 4 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop.
|
||||
while (!input->isFinished()) {
|
||||
output->tickFrame( input->tickFrame() );
|
||||
}
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to play an N channel
|
||||
soundfile.
|
||||
|
||||
This program will load WAV, SND, AIF, and
|
||||
MAT-file formatted files of various data
|
||||
types. If the audio system does not support
|
||||
the number of channels or sample rate of
|
||||
the soundfile, the program will stop.
|
||||
|
||||
By Gary P. Scavone, 2000 - 2002.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtWvOut.h"
|
||||
#include "WvIn.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: play file <rate>\n");
|
||||
printf(" where file = the file to play,\n");
|
||||
printf(" and rate = an optional playback rate.\n");
|
||||
printf(" (default = 1.0, can be negative)\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc < 2 || argc > 3) usage();
|
||||
|
||||
// Initialize our WvIn/WvOut pointers.
|
||||
RtWvOut *output = 0;
|
||||
WvIn *input = 0;
|
||||
|
||||
// Try to load the soundfile.
|
||||
try {
|
||||
input = new WvIn( argv[1] );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Set the global STK sample rate to the file rate.
|
||||
Stk::setSampleRate( input->getFileRate() );
|
||||
|
||||
// Set input read rate.
|
||||
float rate = 1.0;
|
||||
if ( argc == 3 ) rate = atof(argv[2]);
|
||||
input->setRate( rate );
|
||||
|
||||
// Find out how many channels we have.
|
||||
int channels = input->getChannels();
|
||||
|
||||
// Define and open the realtime output device
|
||||
try {
|
||||
output = new RtWvOut( channels, Stk::sampleRate(), 0, 512, 4 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop.
|
||||
while (!input->isFinished()) {
|
||||
output->tickFrame( input->tickFrame() );
|
||||
}
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,70 +1,70 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to record N channels of data
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program is currently written to read
|
||||
from a realtime audio input device and to
|
||||
write to a WAV output file. However, it
|
||||
is simple to replace the FILE_TYPE specifier
|
||||
to WvOut with another file type.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtWvIn.h"
|
||||
#include "WvOut.h"
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: record N file time fs \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" file = the .wav file to create,\n");
|
||||
printf(" time = the amount of time to record (in seconds),\n");
|
||||
printf(" and fs = the sample rate.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// minimal command-line checking
|
||||
if (argc != 5) usage();
|
||||
|
||||
int channels = (int) atoi(argv[1]);
|
||||
float sample_rate = atof(argv[4]);
|
||||
float time = atof(argv[3]);
|
||||
long samples, i;
|
||||
|
||||
// Set the global sample rate.
|
||||
Stk::setSampleRate( sample_rate );
|
||||
|
||||
// Initialize our WvIn/WvOut pointers.
|
||||
RtWvIn *input = 0;
|
||||
WvOut *output = 0;
|
||||
|
||||
// Open the realtime input device
|
||||
try {
|
||||
input = new RtWvIn(channels);
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Open the soundfile for output.
|
||||
try {
|
||||
output = new WvOut(argv[2], channels, WvOut::WVOUT_WAV);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
samples = (long) (time * Stk::sampleRate());
|
||||
for ( i=0; i<samples; i++ )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to record N channels of data
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program is currently written to read
|
||||
from a realtime audio input device and to
|
||||
write to a WAV output file. However, it
|
||||
is simple to replace the FILE_TYPE specifier
|
||||
to WvOut with another file type.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "RtWvIn.h"
|
||||
#include "WvOut.h"
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: record N file time fs \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" file = the .wav file to create,\n");
|
||||
printf(" time = the amount of time to record (in seconds),\n");
|
||||
printf(" and fs = the sample rate.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// minimal command-line checking
|
||||
if (argc != 5) usage();
|
||||
|
||||
int channels = (int) atoi(argv[1]);
|
||||
float sample_rate = atof(argv[4]);
|
||||
float time = atof(argv[3]);
|
||||
long samples, i;
|
||||
|
||||
// Set the global sample rate.
|
||||
Stk::setSampleRate( sample_rate );
|
||||
|
||||
// Initialize our WvIn/WvOut pointers.
|
||||
RtWvIn *input = 0;
|
||||
WvOut *output = 0;
|
||||
|
||||
// Open the realtime input device
|
||||
try {
|
||||
input = new RtWvIn(channels);
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Open the soundfile for output.
|
||||
try {
|
||||
output = new WvOut(argv[2], channels, WvOut::WVOUT_WAV);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
samples = (long) (time * Stk::sampleRate());
|
||||
for ( i=0; i<samples; i++ )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,54 +1,54 @@
|
||||
# A simple Tcl/Tk example script
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set outID "stdout"
|
||||
|
||||
# Configure main window
|
||||
wm title . "A Simple GUI"
|
||||
wm iconname . "simple"
|
||||
. config -bg black
|
||||
|
||||
# Configure a "note-on" button
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn
|
||||
|
||||
# Configure sliders
|
||||
frame .slider -bg black
|
||||
|
||||
scale .slider.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
pack .slider.pitch -padx 10 -pady 10
|
||||
pack .slider -side left
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "NoteOff 0.0 1 %f 127" $pitch ]
|
||||
flush $outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchBend 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
# A simple Tcl/Tk example script
|
||||
|
||||
# Set initial control values
|
||||
set pitch 64.0
|
||||
set press 64.0
|
||||
set outID "stdout"
|
||||
|
||||
# Configure main window
|
||||
wm title . "A Simple GUI"
|
||||
wm iconname . "simple"
|
||||
. config -bg black
|
||||
|
||||
# Configure a "note-on" button
|
||||
frame .noteOn -bg black
|
||||
|
||||
button .noteOn.on -text NoteOn -bg grey66 -command { noteOn $pitch $press }
|
||||
pack .noteOn.on -side left -padx 5
|
||||
pack .noteOn
|
||||
|
||||
# Configure sliders
|
||||
frame .slider -bg black
|
||||
|
||||
scale .slider.pitch -from 0 -to 128 -length 200 \
|
||||
-command {changePitch } -variable pitch \
|
||||
-orient horizontal -label "MIDI Note Number" \
|
||||
-tickinterval 32 -showvalue true -bg grey66
|
||||
|
||||
pack .slider.pitch -padx 10 -pady 10
|
||||
pack .slider -side left
|
||||
|
||||
# Bind an X windows "close" event with the Exit routine
|
||||
bind . <Destroy> +myExit
|
||||
|
||||
proc myExit {} {
|
||||
global pitch outID
|
||||
puts $outID [format "NoteOff 0.0 1 %f 127" $pitch ]
|
||||
flush $outID
|
||||
puts $outID [format "ExitProgram"]
|
||||
flush $outID
|
||||
close $outID
|
||||
exit
|
||||
}
|
||||
|
||||
proc noteOn {pitchVal pressVal} {
|
||||
global outID
|
||||
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
proc changePitch {value} {
|
||||
global outID
|
||||
puts $outID [format "PitchChange 0.0 1 %.3f" $value]
|
||||
flush $outID
|
||||
}
|
||||
|
||||
@@ -1,96 +1,96 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to write N sine tones to
|
||||
an N channel soundfile.
|
||||
|
||||
By default, the program will write an
|
||||
N channel WAV file. However, it is
|
||||
simple to change the file type argument
|
||||
in the WvOut constructor.
|
||||
|
||||
By Gary P. Scavone, 2000 - 2002.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WaveLoop.h"
|
||||
#include "WvOut.h"
|
||||
#include <stdlib.h>
|
||||
#include <iostream.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: sine N file time fs\n");
|
||||
printf(" where N = number of channels (sines),\n");
|
||||
printf(" file = the .wav file to create,\n");
|
||||
printf(" time = the amount of time to record (in seconds),\n");
|
||||
printf(" and fs = the sample rate (in Hz).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
float base_freq = 220.0;
|
||||
int samples;
|
||||
int i;
|
||||
|
||||
// Minimal command-line checking.
|
||||
if (argc != 5) usage();
|
||||
|
||||
int channels = (int) atoi(argv[1]);
|
||||
double time = atof(argv[3]);
|
||||
double srate = atof(argv[4]);
|
||||
|
||||
// Initialize our object and data pointers.
|
||||
WvOut *output = 0;
|
||||
MY_FLOAT *vector = 0;
|
||||
WaveLoop **oscs = (WaveLoop **) malloc( channels * sizeof(WaveLoop *) );
|
||||
for (i=0; i<channels; i++) oscs[i] = 0;
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects!!
|
||||
Stk::setSampleRate( srate );
|
||||
|
||||
// Define and load the rawwave file(s) ... the path is critical.
|
||||
try {
|
||||
for (i=0; i<channels; i++)
|
||||
oscs[i] = new WaveLoop( "../../rawwaves/sinewave.raw", TRUE );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Set oscillator frequency(ies) here ... somewhat random.
|
||||
for (i=0; i<channels; i++)
|
||||
oscs[i]->setFrequency( base_freq + i*(45.0) );
|
||||
|
||||
// Define and open the soundfile for output. Other file
|
||||
// format options include: WVOUT_SND, WVOUT_AIF, WVOUT_MAT,
|
||||
// and WVOUT_RAW. Other data type options include:
|
||||
// STK_SINT8, STK_SINT32, STK_FLOAT32, and STK_FLOAT64.
|
||||
try {
|
||||
output = new WvOut( argv[2], channels, WvOut::WVOUT_WAV, Stk::STK_SINT16 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
samples = (int) ( time * Stk::sampleRate() );
|
||||
vector = (MY_FLOAT *) new MY_FLOAT[channels];
|
||||
for ( i=0; i<samples; i++ ) {
|
||||
for (int j=0; j<channels; j++) {
|
||||
vector[j] = oscs[j]->tick();
|
||||
}
|
||||
output->tickFrame(vector);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
for (i=0; i<channels; i++)
|
||||
delete oscs[i];
|
||||
free(oscs);
|
||||
delete [] vector;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to write N sine tones to
|
||||
an N channel soundfile.
|
||||
|
||||
By default, the program will write an
|
||||
N channel WAV file. However, it is
|
||||
simple to change the file type argument
|
||||
in the WvOut constructor.
|
||||
|
||||
By Gary P. Scavone, 2000 - 2002.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WaveLoop.h"
|
||||
#include "WvOut.h"
|
||||
#include <stdlib.h>
|
||||
#include <iostream.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: sine N file time fs\n");
|
||||
printf(" where N = number of channels (sines),\n");
|
||||
printf(" file = the .wav file to create,\n");
|
||||
printf(" time = the amount of time to record (in seconds),\n");
|
||||
printf(" and fs = the sample rate (in Hz).\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
float base_freq = 220.0;
|
||||
int samples;
|
||||
int i;
|
||||
|
||||
// Minimal command-line checking.
|
||||
if (argc != 5) usage();
|
||||
|
||||
int channels = (int) atoi(argv[1]);
|
||||
double time = atof(argv[3]);
|
||||
double srate = atof(argv[4]);
|
||||
|
||||
// Initialize our object and data pointers.
|
||||
WvOut *output = 0;
|
||||
MY_FLOAT *vector = 0;
|
||||
WaveLoop **oscs = (WaveLoop **) malloc( channels * sizeof(WaveLoop *) );
|
||||
for (i=0; i<channels; i++) oscs[i] = 0;
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects!!
|
||||
Stk::setSampleRate( srate );
|
||||
|
||||
// Define and load the rawwave file(s) ... the path is critical.
|
||||
try {
|
||||
for (i=0; i<channels; i++)
|
||||
oscs[i] = new WaveLoop( "../../rawwaves/sinewave.raw", TRUE );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Set oscillator frequency(ies) here ... somewhat random.
|
||||
for (i=0; i<channels; i++)
|
||||
oscs[i]->setFrequency( base_freq + i*(45.0) );
|
||||
|
||||
// Define and open the soundfile for output. Other file
|
||||
// format options include: WVOUT_SND, WVOUT_AIF, WVOUT_MAT,
|
||||
// and WVOUT_RAW. Other data type options include:
|
||||
// STK_SINT8, STK_SINT32, STK_FLOAT32, and STK_FLOAT64.
|
||||
try {
|
||||
output = new WvOut( argv[2], channels, WvOut::WVOUT_WAV, Stk::STK_SINT16 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
samples = (int) ( time * Stk::sampleRate() );
|
||||
vector = (MY_FLOAT *) new MY_FLOAT[channels];
|
||||
for ( i=0; i<samples; i++ ) {
|
||||
for (int j=0; j<channels; j++) {
|
||||
vector[j] = oscs[j]->tick();
|
||||
}
|
||||
output->tickFrame(vector);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
for (i=0; i<channels; i++)
|
||||
delete oscs[i];
|
||||
free(oscs);
|
||||
delete [] vector;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ RSC=rc.exe
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__LITTLE_ENDIAN__" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__LITTLE_ENDIAN__" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
@@ -65,7 +65,7 @@ LINK32=link.exe
|
||||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__LITTLE_ENDIAN__" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__LITTLE_ENDIAN__" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
|
||||
@@ -1,78 +1,78 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to read N channels of audio
|
||||
data that are streamed over a TCP network
|
||||
connection.
|
||||
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program is currently written to play
|
||||
the input data in realtime. However, it
|
||||
is simple to replace the instance of
|
||||
RtWvOut with WvOut for writing to a
|
||||
soundfile.
|
||||
|
||||
The streamed data format is assumed to be
|
||||
signed 16-bit integers. However, both
|
||||
TcpWvIn and TcpWvOut can be initialized
|
||||
to read/write any of the defined STK_FORMATs.
|
||||
|
||||
The class TcpWvIn sets up a socket server
|
||||
and waits for a connection. Therefore,
|
||||
this program needs to be started before
|
||||
the streaming client. This program will
|
||||
terminate when the socket connection is
|
||||
closed.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "TcpWvIn.h"
|
||||
#include "RtWvOut.h"
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: tcpIn N fs \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" and fs = the data sample rate.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc != 3) usage();
|
||||
|
||||
Stk::setSampleRate( atof(argv[2]) );
|
||||
int channels = (int) atoi(argv[1]);
|
||||
|
||||
// Initialize the object pointers.
|
||||
RtWvOut *output = 0;
|
||||
TcpWvIn *input = 0;
|
||||
|
||||
// Instantiate the TcpWvIn object.
|
||||
try {
|
||||
input = new TcpWvIn();
|
||||
input->listen( channels, Stk::STK_SINT16 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the realtime output device.
|
||||
try {
|
||||
output = new RtWvOut(channels);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop.
|
||||
while ( input->isConnected() )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to read N channels of audio
|
||||
data that are streamed over a TCP network
|
||||
connection.
|
||||
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program is currently written to play
|
||||
the input data in realtime. However, it
|
||||
is simple to replace the instance of
|
||||
RtWvOut with WvOut for writing to a
|
||||
soundfile.
|
||||
|
||||
The streamed data format is assumed to be
|
||||
signed 16-bit integers. However, both
|
||||
TcpWvIn and TcpWvOut can be initialized
|
||||
to read/write any of the defined STK_FORMATs.
|
||||
|
||||
The class TcpWvIn sets up a socket server
|
||||
and waits for a connection. Therefore,
|
||||
this program needs to be started before
|
||||
the streaming client. This program will
|
||||
terminate when the socket connection is
|
||||
closed.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "TcpWvIn.h"
|
||||
#include "RtWvOut.h"
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: tcpIn N fs \n");
|
||||
printf(" where N = number of channels,\n");
|
||||
printf(" and fs = the data sample rate.\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc != 3) usage();
|
||||
|
||||
Stk::setSampleRate( atof(argv[2]) );
|
||||
int channels = (int) atoi(argv[1]);
|
||||
|
||||
// Initialize the object pointers.
|
||||
RtWvOut *output = 0;
|
||||
TcpWvIn *input = 0;
|
||||
|
||||
// Instantiate the TcpWvIn object.
|
||||
try {
|
||||
input = new TcpWvIn();
|
||||
input->listen( channels, Stk::STK_SINT16 );
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the realtime output device.
|
||||
try {
|
||||
output = new RtWvOut(channels);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop.
|
||||
while ( input->isConnected() )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,86 +1,86 @@
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to output N channels of audio
|
||||
data over a TCP network socket connection.
|
||||
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program will load a specified WAV,
|
||||
SND, AIFF, STK RAW, or MAT-file formatted
|
||||
file. The output data format is set for
|
||||
signed 16-bit integers. However, it is
|
||||
easy to change the TcpWvOut setting to
|
||||
any of the other defined STK_FORMATs.
|
||||
If using tcpIn, it will be necessary to
|
||||
change the expected data format there
|
||||
as well.
|
||||
|
||||
The class StrmWvOut first attempts to
|
||||
establish a socket connection to a socket
|
||||
server running on port 2006. Therefore,
|
||||
this program needs to be started AFTER the
|
||||
streaming server.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WvIn.h"
|
||||
#include "TcpWvOut.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: tcpOut file host <rate>\n");
|
||||
printf(" where file = the file to load,\n");
|
||||
printf(" host = the hostname where the receiving\n");
|
||||
printf(" application is running.\n");
|
||||
printf(" and rate = an optional playback rate for the file.\n");
|
||||
printf(" (default = 1.0, can be negative)\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc < 3 || argc > 4) usage();
|
||||
|
||||
// Initialize the object pointers.
|
||||
TcpWvOut *output = 0;
|
||||
WvIn *input = 0;
|
||||
|
||||
// Load the file.
|
||||
try {
|
||||
input = new WvIn( (char *)argv[1] );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Set the global STK sample rate to the file rate.
|
||||
Stk::setSampleRate( input->getFileRate() );
|
||||
|
||||
// Set input read rate.
|
||||
double rate = 1.0;
|
||||
if ( argc == 4 ) rate = atof(argv[3]);
|
||||
input->setRate( rate );
|
||||
|
||||
// Find out how many channels we have.
|
||||
int channels = input->getChannels();
|
||||
|
||||
// Define and open the output device
|
||||
try {
|
||||
output = new TcpWvOut(2006, (char *)argv[2], channels, Stk::STK_SINT16);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
while ( !input->isFinished() )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
/******************************************/
|
||||
/*
|
||||
Example program to output N channels of audio
|
||||
data over a TCP network socket connection.
|
||||
|
||||
by Gary P. Scavone, 2000
|
||||
|
||||
This program will load a specified WAV,
|
||||
SND, AIFF, STK RAW, or MAT-file formatted
|
||||
file. The output data format is set for
|
||||
signed 16-bit integers. However, it is
|
||||
easy to change the TcpWvOut setting to
|
||||
any of the other defined STK_FORMATs.
|
||||
If using tcpIn, it will be necessary to
|
||||
change the expected data format there
|
||||
as well.
|
||||
|
||||
The class StrmWvOut first attempts to
|
||||
establish a socket connection to a socket
|
||||
server running on port 2006. Therefore,
|
||||
this program needs to be started AFTER the
|
||||
streaming server.
|
||||
*/
|
||||
/******************************************/
|
||||
|
||||
#include "WvIn.h"
|
||||
#include "TcpWvOut.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void usage(void) {
|
||||
// Error function in case of incorrect command-line
|
||||
// argument specifications.
|
||||
printf("\nuseage: tcpOut file host <rate>\n");
|
||||
printf(" where file = the file to load,\n");
|
||||
printf(" host = the hostname where the receiving\n");
|
||||
printf(" application is running.\n");
|
||||
printf(" and rate = an optional playback rate for the file.\n");
|
||||
printf(" (default = 1.0, can be negative)\n\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Minimal command-line checking.
|
||||
if (argc < 3 || argc > 4) usage();
|
||||
|
||||
// Initialize the object pointers.
|
||||
TcpWvOut *output = 0;
|
||||
WvIn *input = 0;
|
||||
|
||||
// Load the file.
|
||||
try {
|
||||
input = new WvIn( (char *)argv[1] );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Set the global STK sample rate to the file rate.
|
||||
Stk::setSampleRate( input->getFileRate() );
|
||||
|
||||
// Set input read rate.
|
||||
double rate = 1.0;
|
||||
if ( argc == 4 ) rate = atof(argv[3]);
|
||||
input->setRate( rate );
|
||||
|
||||
// Find out how many channels we have.
|
||||
int channels = input->getChannels();
|
||||
|
||||
// Define and open the output device
|
||||
try {
|
||||
output = new TcpWvOut(2006, (char *)argv[2], channels, Stk::STK_SINT16);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Here's the runtime loop
|
||||
while ( !input->isFinished() )
|
||||
output->tickFrame( input->tickFrame() );
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ RSC=rc.exe
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_DS__" /D "__LITTLE_ENDIAN__" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_DS__" /D "__LITTLE_ENDIAN__" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
@@ -66,7 +66,7 @@ LINK32=link.exe
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_DS__" /D "__LITTLE_ENDIAN__" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_DS__" /D "__LITTLE_ENDIAN__" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
|
||||
0
projects/ragamatic/Debug/.placeholder
Normal file
0
projects/ragamatic/Debug/.placeholder
Normal file
@@ -1,63 +0,0 @@
|
||||
# STK Makefile - Global version for Unix systems which have GNU
|
||||
# Makefile utilities installed. If this Makefile does not work on
|
||||
# your system, try using the platform specific Makefiles (.sgi,
|
||||
# .next, and .linux).
|
||||
|
||||
OS = $(shell uname)
|
||||
|
||||
# The following definition indicates the relative location of
|
||||
# the core STK classes.
|
||||
STK_PATH = ../../src/
|
||||
|
||||
O_FILES = Stk.o Envelope.o ADSR.o Noise.o \
|
||||
Filter.o DelayA.o Delay.o \
|
||||
OnePole.o OneZero.o SKINI.o \
|
||||
Tabla.o Instrmnt.o Sitar.o \
|
||||
Drone.o VoicDrum.o WvOut.o WvIn.o \
|
||||
RtAudio.o RtWvOut.o RtMidi.o Reverb.o \
|
||||
JCRev.o Messager.o Socket.o Thread.o
|
||||
|
||||
RM = /bin/rm
|
||||
|
||||
ifeq ($(OS),IRIX) # These are for SGI
|
||||
INSTR = ragamat
|
||||
CC = CC -O2 -D__IRIX_AL__ # -g -fullwarn -D__SGI_CC__
|
||||
LIBRARY = -L/usr/sgitcl/lib -laudio -lmd -lm -lpthread
|
||||
INCLUDE = -I../../include
|
||||
endif
|
||||
|
||||
ifeq ($(OS),Linux) # These are for Linux
|
||||
INSTR = ragamat
|
||||
CC = g++ -O3 -Wall -D__LINUX_OSS__ -D__LITTLE_ENDIAN__ # -g
|
||||
LIBRARY = -lpthread -lm #-lasound
|
||||
INCLUDE = -I../../include
|
||||
endif
|
||||
|
||||
%.o : $(STK_PATH)%.cpp
|
||||
$(CC) $(INCLUDE) -c $(<) -o $@
|
||||
|
||||
all: $(INSTR)
|
||||
|
||||
ragamat: ragamat.cpp $(O_FILES)
|
||||
$(CC) $(INCLUDE) -o ragamat ragamat.cpp $(O_FILES) $(LIBRARY)
|
||||
|
||||
clean :
|
||||
rm *.o
|
||||
rm $(INSTR)
|
||||
|
||||
cleanIns :
|
||||
rm $(INSTR)
|
||||
|
||||
strip :
|
||||
strip $(INSTR)
|
||||
|
||||
# $(O_FILES) :
|
||||
|
||||
Tabla.o: Tabla.cpp
|
||||
$(CC) $(INCLUDE) -c Tabla.cpp
|
||||
|
||||
Drone.o: Drone.cpp
|
||||
$(CC) $(INCLUDE) -c Drone.cpp
|
||||
|
||||
VoicDrum.o: VoicDrum.cpp
|
||||
$(CC) $(INCLUDE) -c VoicDrum.cpp
|
||||
69
projects/ragamatic/Makefile.in
Normal file
69
projects/ragamatic/Makefile.in
Normal file
@@ -0,0 +1,69 @@
|
||||
### STK ragamatic Makefile - for various flavors of unix
|
||||
|
||||
PROGRAMS = ragamat
|
||||
RM = /bin/rm
|
||||
SRC_PATH = ../../src
|
||||
OBJECT_PATH = @object_path@
|
||||
vpath %.o $(OBJECT_PATH)
|
||||
|
||||
OBJECTS = Stk.o Envelope.o ADSR.o Noise.o \
|
||||
Filter.o DelayA.o Delay.o \
|
||||
OnePole.o OneZero.o SKINI.o \
|
||||
Tabla.o Instrmnt.o Sitar.o \
|
||||
Drone.o VoicDrum.o WvOut.o WvIn.o \
|
||||
Reverb.o JCRev.o Messager.o
|
||||
|
||||
INCLUDE = @include@
|
||||
ifeq ($(strip $(INCLUDE)), )
|
||||
INCLUDE = ../../include
|
||||
endif
|
||||
vpath %.h $(INCLUDE)
|
||||
|
||||
CC = @CXX@
|
||||
DEFS = @byte_order@
|
||||
DEFS += @debug@
|
||||
CFLAGS = @cflags@
|
||||
CFLAGS += @warn@ -I$(INCLUDE)
|
||||
LIBRARY = @LIBS@
|
||||
LIBRARY += @frameworks@
|
||||
|
||||
REALTIME = @realtime@
|
||||
ifeq ($(REALTIME),yes)
|
||||
OBJECTS += RtMidi.o RtAudio.o RtWvOut.o Thread.o Socket.o
|
||||
DEFS += @sound_api@
|
||||
DEFS += @midiator@
|
||||
endif
|
||||
|
||||
RAWWAVES = @rawwaves@
|
||||
ifeq ($(strip $(RAWWAVES)), )
|
||||
RAWWAVES = ../../rawwaves/
|
||||
endif
|
||||
DEFS += -DRAWWAVE_PATH=\"$(RAWWAVES)\"
|
||||
|
||||
%.o : $(SRC_PATH)/%.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@
|
||||
|
||||
all : $(PROGRAMS)
|
||||
|
||||
ragamat: ragamat.cpp $(OBJECTS)
|
||||
$(CC) $(CFLAGS) $(DEFS) -o ragamat ragamat.cpp $(OBJECT_PATH)/*.o $(LIBRARY)
|
||||
|
||||
$(OBJECTS) : Stk.h
|
||||
|
||||
clean :
|
||||
-rm $(OBJECT_PATH)/*.o
|
||||
-rm $(PROGRAMS)
|
||||
|
||||
strip :
|
||||
strip $(PROGRAMS)
|
||||
|
||||
# Project specific objects:
|
||||
|
||||
Tabla.o: Tabla.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c Tabla.cpp -o $(OBJECT_PATH)/$@
|
||||
|
||||
Drone.o: Drone.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c Drone.cpp -o $(OBJECT_PATH)/$@
|
||||
|
||||
VoicDrum.o: VoicDrum.cpp
|
||||
$(CC) $(CFLAGS) $(DEFS) -c VoicDrum.cpp -o $(OBJECT_PATH)/$@
|
||||
0
projects/ragamatic/Release/.placeholder
Normal file
0
projects/ragamatic/Release/.placeholder
Normal file
@@ -21,10 +21,11 @@ MY_FLOAT float_random(MY_FLOAT max) // Return random float between 0.0 and max
|
||||
|
||||
void usage(void) {
|
||||
/* Error function in case of incorrect command-line argument specifications */
|
||||
printf("\nuseage: ragamat flag \n");
|
||||
printf(" where flag = -ip for realtime SKINI input by pipe\n");
|
||||
printf(" (won't work under Win95/98),\n");
|
||||
printf(" and flag = -is for realtime SKINI input by socket.\n");
|
||||
printf("\nuseage: ragamat flags \n");
|
||||
printf(" where flag = -s RATE to specify a sample rate,\n");
|
||||
printf(" flag = -ip for realtime SKINI input by pipe\n");
|
||||
printf(" (won't work under Win95/98),\n");
|
||||
printf(" and flag = -is <port> for realtime SKINI input by socket.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -41,10 +42,6 @@ int main(int argc,char *argv[])
|
||||
Messager *messager;
|
||||
MY_FLOAT t60 = 4.0; // in seconds
|
||||
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects!!
|
||||
Stk::setSampleRate( 22050.0 );
|
||||
|
||||
MY_FLOAT drone_prob = 0.01, note_prob = 0.0;
|
||||
MY_FLOAT drum_prob = 0.0, voic_prob = 0.0;
|
||||
MY_FLOAT droneFreqs[3] = {55.0,82.5,220.0};
|
||||
@@ -57,21 +54,36 @@ int main(int argc,char *argv[])
|
||||
int ragaDown[2][13] = {{57, 60, 62, 64, 65, 67, 69, 71, 72, 76, 79, 81},
|
||||
{48, 52, 53, 55, 57, 59, 60, 64, 66, 68, 70, 72}};
|
||||
|
||||
if (argc != 2) usage();
|
||||
// If you want to change the default sample rate (set in Stk.h), do
|
||||
// it before instantiating any objects! If the sample rate is
|
||||
// specified in the command line, it will override this setting.
|
||||
Stk::setSampleRate(22050.0);
|
||||
|
||||
int controlMask = 0;
|
||||
if (!strcmp(argv[1],"-is") )
|
||||
controlMask |= STK_SOCKET;
|
||||
else if (!strcmp(argv[1],"-ip") )
|
||||
controlMask |= STK_PIPE;
|
||||
else
|
||||
usage();
|
||||
if (argc < 2 || argc > 6) usage();
|
||||
|
||||
int port = -1;
|
||||
int i, controlMask = 0;
|
||||
for ( i=1; i<argc; i++ ) {
|
||||
if (!strcmp(argv[i],"-is") ) {
|
||||
controlMask |= STK_SOCKET;
|
||||
if (i+1 < argc && argv[i+1][0] != '-' ) port = atoi(argv[++i]);
|
||||
}
|
||||
else if (!strcmp(argv[i],"-ip") )
|
||||
controlMask |= STK_PIPE;
|
||||
else if (!strcmp(argv[i],"-s") && (i+1 < argc) && argv[i+1][0] != '-')
|
||||
Stk::setSampleRate( atoi(argv[++i]) );
|
||||
else
|
||||
usage();
|
||||
}
|
||||
|
||||
try {
|
||||
output = new RtWvOut(2);
|
||||
|
||||
// Instantiate the input message controller.
|
||||
messager = new Messager( controlMask );
|
||||
if ( controlMask & STK_SOCKET && port >= 0 )
|
||||
messager = new Messager( controlMask, port );
|
||||
else
|
||||
messager = new Messager( controlMask );
|
||||
}
|
||||
catch (StkError &) {
|
||||
exit(0);
|
||||
@@ -94,7 +106,6 @@ int main(int argc,char *argv[])
|
||||
drones[1]->noteOn(droneFreqs[1],0.1);
|
||||
drones[2]->noteOn(droneFreqs[2],0.1);
|
||||
|
||||
int i;
|
||||
MY_FLOAT outSamples[2];
|
||||
for (i=0;i<Stk::sampleRate();i++) { /* warm everybody up a little */
|
||||
outSamples[0] = reverbs[0]->tick(drones[0]->tick() + drones[2]->tick());
|
||||
|
||||
Reference in New Issue
Block a user