crkodrt2 ( let's not bother to get into a discussion about naming )
was initially designed to be a companion program for PrintChart

it is actually a newer migrated version of a program that I wrote
MANY years ago using the FORTH language, thus the reason for the
"2" in the name

the XML files that PrintChart generates can be used as input into

it is also possible, of course, to modify or create the XML files
manually with a suitable editor, before providing them as input
into crkodrt2

to run it, you will need a suitable java runtime

although I have never bothered to pursue the thought, it is
conceivable that it might be able to run on the MAC, and other
versions of linux

although it might run on a lot of platforms, I'm running it
on Windows 10 using jdk1.8.0_131 downloaded from the
oracle website

again, it might work in a lot of different implementations, but
I would recommend duplicating my environment as closely as
possible ... after all ... people are NOT spending a lot of
time working out the kinks in PC based java implementations of

off of my root drive ( C: of course ), I will have a directory
called "crkodrt2", and in that directory I would unzip the
entire contents of the zip file found at the link below

now, if we open up a command prompt and cd to c:\crkodrt2 , we
should see the CLASS files, xml files, etc.

since crkodrt2 is a java program, there are many different
ways to run it

to save time, I just decided to use a SET command to implement
the CLASSPATH, and then after that, I can run it as many times
as I wish

as seems to be a convention in many parts of the industry,
if you run crkodrt2 with no parameters, it will just output
a list of the parameters and terminate

crkodrt2 will also create a log file in the directory where
it is run, which can be used to debug it, if there is
some kind of problem

it is suggested, that the user delete the log before each
execution, to keep things under control

in my experience, the java implementation has changed a
little over time, so I have two set commands that I normally
execute, and that seems to work with most of the implementations
that I have run into

here are the two set commands that I normally execute
before running crkodrt2

 set classpath=.;%classpath%
 set classpath=.\*;%classpath%

the difference between the two is subtle, but whenever
I execute both of them, it seems to work on any windows
machine with any version of java that I have tested

crkodrt2 can be run in many different ways

if you have been following along, then you should have a
file in the current directory named


this xml file contains a number of directives that control
how crkodrt2 works

one of the ways that the program can operate is by sending
the output being generated out of a midi output port of
an interface that is connected to the machine

the xml config file might contain a number of


xml tags ... the first one encountered will be the one
that crkodrt2 tries to connect to

when crkodrt2 operates in this manner, the user can connect
the midi output of the interface to a midi input of another
interface, or even looped back into the same midi interface
( if you dare ) ... and then the output can be captured
using your favorite DAW

perhaps an easier approach, initially, would be to instruct
crkodrt2 to generate output to midi files ... then the files
can be inserted into the DAW manually ... this is the way
that I normally run the program nowadays

I have included some sample PrintChart output XML files
to use as input into crkodrt2

we can use one of them to try and get off the ground
quickly here ... you should see a file in the current
directory named


we can run crkodrt2 with this file as input with
the following command:

  java crkodrt2 -PCDFAP Crkodrt2SampleInput.xml -S1 -M1

crkodrt2 is a real-time generator ... without going
into a lot of detail, the sample input is set to
generate 7 midi channels of data each containing
24 bars of 4/4 at 120 bpm

it should take slightly less than a minute to run, and
when it finishes, it will return back to a DOS prompt,
and a "dir" command will reveal 7 new files with a ".mid"
extension that have been generated, one for each midi
channel specified in the XML input file.


These midi files can be dropped into your favorite DAW

The channel 10 output is directed by the input XML
to be a metronome track

The channel 1 output is directed by the input XML
to concentrate solely on the root note of each scale

The channel 2 output is directed by the input XML
to concentrate on the 3rd and 5th of each scale

The channel 3 output is directed by the input XML
to concentrate on the 5th and 7th of each scale

The channel 4 output is directed by the input XML
to concentrate on the root, 3rd, and 5th of each scale

The channel 5 output is directed by the input XML
to concentrate on the 3rd, 5th, and 7th of each scale

The channel 6 output is directed by the input XML
to concentrate on the 2cnd, 4th, and 6th of each scale

together they will create some interesting midi tracks,
and it is quite likely that the tracks will be different
each time the program is run

there are other parameters in the XML input file
that can be modified to change the output

feel free to contact me if you have any questions
or suggestions



talk to us!!!