home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
d
/
dir_nm20.zip
/
Dir_NM_2.0
/
README
< prev
Wrap
Text File
|
1992-07-16
|
26KB
|
679 lines
========================
Nimble Musician
========================
Version 2.0
Ni Min ( Frank )
July 17, 1992
Developed at Indiana University, Bloomington,IN
nimin@copper.ucs.indiana.edu
This program is developed to fill the needs of computer music
fans like me, who like music but don't want to get into the
details of music notation.
Five years ago, as I still remember, on a evening after dinner
in Shanghai, I came to the idea of writing a computer music
program, so I told my parents, but they laughed, as if without
much music knowledge one can not write a useful program.
However I didn't give up this idea, little by little I used my
spare time to realize this dream, and now I can proudly say :
" Here it is, I have made it ! "
This program is called : " NM ". It's born exactly 26 years
after I was born (July,7,1966).
NM uses X window as its base, so it works on the Sparcs and
its compatibles. Users can edit music in the five line style.
Inputs may go through both mouse and keyboard. Outputs may go
through screen, printer and the Next machine's sound system.
Since the Sparcs doesn't have a satisfactory sound function,
the NM package offers a translate function so that users can
translate the Textfile output by NM to a Scorefile which can
be played back on a Next machine. The sampling rate is 22050
( or 44100 ) samples per second, which is about CD quality.
NM also offers the ability to have words go with the melody.
The most important is to remember : move your mouse around to
find out which buttons on the menu are active, only the active
buttons will respond when you click on them. Secondly, when
you start the program, if you don't see anything show up on
the screen after 30 seconds, click the right most mouse button
to reflash the window, it will do no harm.
There are 36 different sorts of music you can input, it's up
to you to name them, but the first and last kinds are fixed.
The first kind represents tempos used by drums, the last kind
represents tempo sets, in which a set of tempos are grouped
together as one unit. Because of the unique data structure,
these two are not compatible with other 34 kinds. All the 36
kinds can have whatever names you choose, but remember : the
first and the last kinds are different from others, names
don't change their structures. The capacity for each kind is
1,000. Totally NM may handle 34,000 melodies + 1,000 tempos
+ 1,000 tempo-sets. So enjoy yourself and the NM . I have a
suggestion at the bottom of this file, see if you like it !
********************************************************************************
NM Usuage Overview
********************************************************************************
From now on the underlined parts meaning you need to type them
in.
In the NM directory type > make nm to compile the program
---------
( do the above when "nm" is not yet in your Dir_NM directory. )
The executable file " nm " will be created ( if it wasn't
there already ). To run the program just type > nm
----
In the main menu, there are dozens of choice buttons, and on the top
middle is a text table. In the lower part of the menu are the
host buttons.
<1> List
Click on the "List" button on the menu to see how many
melodies you have and what are they.
If you want to see a particular melody, click the left button
on "Output/Bk" and then click on that melody in the list table.
Once you are in that melody, hit the "Esc" or click the right
mouse button on the page number, at the top of the screen, to
get back to the menu.
In many case if you click the mouse on the classification
names like: Waltz, you will start from the beginning ( in
Output mode ) or input a new melody ( in Input mode ).
Otherwise, if you click on a particular melody name in the
list table, you will work on that particular one.
Since the screen is not large enough for displaying all 36
kinds, NM offers the ability to move the list table around.
For instance, if I want to see the 30th kind which is outside
the screen, I may use the middle mouse button to move the list
table, so that the part I want to see may show up on the
screen. To do this, first move the mouse pointer into the
text table, press down the middle button, and drag the mouse
to the left just a little bit, then release the button, see
what happens. When you drag, don't let the mouse pointer move
out of the text table ! By the same means, you may drag the
mouse up and down.
<2> Input
Use mouse to click on the "Input" button of the menu, and then
click on the kind of melody you want to input, when you are
asked for some info like : name, time, measure, just type in
or simply hit return to take the default values.
Example of info needed to be typed in:
Input new one (Y/N) ? Y
---
Melody name : 1001. march-1
-------
Timer = 3 Measure = 4
--- ---
The above example means 3/4 in music notation. The default is
4/4. The default name is "IM?".
To edit an existing melody, you may do either of the
following:
[1] Click on "List", and click on "Input", then click
on an existing melody and answer the following
questions:
Change name ? Y ( or N to use old name )
--- ---
Melody name: 1002.my-new-one
----------
Timer = 2 Measure = 4
--- ---
or
[2] Click on "Input", and click on a classification
name,such as "African" and answer the following
questions:
Input new one (Y/N) ? N
---
Melody number : 2 (assume it exists)
---
Change name ? Y ( or N to use old name )
--- ---
Melody name: 1002.my-new-one
----------
Timer = 2 Measure = 4
--- ---
Now you can use the "z", "x", "c" keys to choose the note at
the bottom of the screen, and use : left,right,up,down arrow
keys to get to the right position in the staff ( five line ).
Hit the Return key , when decided, to enter a note.
To switch to the lower part of the score, use the mouse to click
on the "High" button at the bottom of the screen, it's a toggle
button, click on it again to get back to the higher part.
To delete a note, move the cursor to that note and hit the
"Del" key ( or click the rightmost button of the mouse on that
note which will give you a blank space). Also, if you intend
to input a blank space on the score, use "z", "x", "c" keys to
move to the "Bar" position at the right, then hit Return key.
To insert a note, kit the "Ins" key, you will notice the
"Insert On" info at the bottom, move the cursor to the
position and then insert the note. Hit the "Ins" key again to
turn it off.
When you have more than one page, you can use the "PgUp",
"PgDn" keys to move around in the melody.
The "Home" key is used as a lock, when it is on you can use the
four arror keys for the purpose of changing Speed and Percent
of the melody. The Speed is used to control how many beats per
minute. The Percent is used to control the relative time
length of the each beat.
When the "Lock" is "On", you can also use "<" and ">" keys to
change Timbre value. You don't need to use Shift key to get
"<" and ">" working.
To be on the safe side, press "V" during input to save the
melody. Use "Esc" to exit without saving. Click the rightmost
button on the page number at the top middle of the screen to
save and exit. When you finish a melody choose the finish sign
" || " at the bottom and hit the Return key, the melody will
automatically be saved when you finish.
When you use it for the first time, input a dummy melody just
to get accustomed to the NM conventions, just as the saying
goes : practice makes perfect !
There are eight parts: four higher parts and four lower parts.
In either case , higher or lower, after you have used keys to
input one part of the score, you can use mouse to input the
other parts. Use the leftmost button to add. Use the middle
button to delete --- just point on an existing note and click
the middle button on it.
The single line " | " at the bottom of the choosing board is
used for the first section line on the score --- in case of
irregular first section, other section lines are drawn
automatically.
The "/" sign is used to input sound unit, for future use,
after you hit the return key on the "/" sign, input a number
represents that sound unit id, the sound unit can be input in
the Sound function in the main menu.
To input words, click the left button of the mouse on the
" ** " button on the right of the choosing board. A text table
will appear at the bottom, use the left button to input small
letter, middle button for capital letter and the right button
for space.
When you are inputing words, you may reposition the text
cursor as you want, to do this, just move the mouse pointer up
to the words, use the left button to click on the words ( not
the text table ), and use the middle button to add space, right
button to delete. To get back to score mode, just click on the
"Text" button at the buttom of the screen.
To input sharp/flat/natural signs, you first use 'z','x','c'
to move the cursor on that sign, hit return and move the
cursor to the appropriate position to choose the note you want
to be associated with that sign (sharp/flat/natural).
If you already have a note in a chord, and you want to mark a
sharp/flat/natural sign on another note in the same chord,
first you move the cursor to that sign, then click the left
mouse button on that note to input the sign. Note: all flat
signs will be expressed as equavalent sharp signs.
<3> Output/Bk
Click the left button on the "Output/Bk" on the menu, and
choose the kind the melody you want to see. If you click the
"List" button you may then click on the particular melody you
want to check out. Use "PgUp" and "PgDn" keys to move around
in the melody.
Click the middle mouse button on "Output/Bk" will make a
backup copy of all melodies in the Dir_Text directory in
*.text mode, and creat a Dir_Text.tar.Z in the Dir_NM_Bank
directory for you --- when you do "Load" this package will be
unpacked and loaded into the category you specify.
If you have some tempo goes with the melody, you will find the
tempo # and instrument # in the tempo table at the lower left
and lower right side of the screen, and if you want to see the
tempo click the left button on the tempo table to take a tour,
if you want to finish the tempo tour and get back to the
melody, click the same place again.
<4> Re_Name
To re-name an existing melody, you can do either of the
following:
[1] Input it again, when you are asked :
"Change name (Y/N) ? " answer Y and then type the
---
new name.
or
[2] Click on "List" in the menu, click on "Re-Name".
then click on the melody you want to change name,
now the old name will be replaced by " ? ".
from now on you may use the mouse button to click
on the text table in the middle of the menu, the
left button will give you small letter, the middle
one is for capital letter.
<5> Move-To
Click the "List" first, then click on "Move To" to move one
melody from one place to another. To do this just click on the
melody name and its destination in the list table. For
instance, I have the following two kinds of melodies:
Aferican March
Afer-1 March-1
Af---2 Mar---2
A----3 M-----3
After I click on "Move To", I click on "Af---2", then click on
"Mar---2", the result will be like the following:
Aferican March
Afer-1 March-1
A----3 Af---2
Mar---2
M-----3
<6> Delete
To delete melodies, click the "List" first, then click on
"Delete", you may delete a bounch of songs at a time, but they
must belong to the same category.
For instance, I want to delete 4 marches from #4 to #7, and
suppose march is the third kind, then those four marches
should have these numbers: 2004,2005,2006,2007, so you click
on the first one: 2004 and then click on the last one: 2007.
You may also click on the last one: 2007 first and the first
one second.
< Before > < After >
March March
2001.March-1 2001.March-1
2002.March-2 2002.March-2
2003.March-3 2003.March-3
* 2004.March-4 2004.March-8
2005.March-5 2005.March-9
2006.March-6
* 2007.March-7
2008.March-8
2009.March-9
<7> Value
There are some space in each melody researved for its values,
such as : Happy, Fast, Year, Bright, Famous, Smooth, etc,
which will be used for future sorting purpose, they doesn't
affect the melody.
If you want to input those values, click on "Value", and click
on a particular melody in the list. You will see a value table
show up, move the mouse around in the table and use the three
buttons to change the values. Press "q" to quit.
<8> Check_Tmp
This function is use to update the tempo, some times you
receive a new melody, which will bring you some new tempos,
when you click this button, the new tempos will be included in
the tempo library you have --- the first kind of all the 36.
On the other hand if you type in a new melody and want to use
some none existing tempos, and enter the tempos later, you can
also click on "Check_Tmp" after you input the tempos.
To input tempo when you are in the "Input" mode, just press
the "Home" key, and one of the Following : F1, F2, .. F6. So
you can accompany one melody with 6 different tempos, and they
will be performed at the same time. Here tempo refers to the
patterns used by drums.
For instance you press "Home" , and press "F1", you will find a
little cursor at the bottom left of the screen in the tempo
table. Then you may input any number and hit return , then
input a instrument number, if you don't have tempos or
instruments in your lib, it will not cause any problem, they
will be used when you do have them in your lib later.
F1..F6 are equally treated, so you don't have to worry about
the order.
<9> Switch
Click the "List" first, then click on "Switch" to switch the
positions of two different kinds of melodies in the list table.
Notice that the first and the last two kinds don't move when
you try to switch them with other kinds of music, and you can
only move them within their own category --- use <4>.
<10> Combine
You may want to cut some pieces from one melody and some
pieces from other melody, if so the "Combine" function will
meet your such requirement.
Click the left button on "Combine" and then click the same
button on any kind of melody ( you can only combine two
melodies of the same sort, to combine different sorts, first
move they into the same category, then combine, after
combination, move they back.) Once you are in one melody, use
left and right arrow keys to move the cursor to the place you
want to cut, press the "F3" key to mark the beginning, "F4"
key to mark the end, "F5" key to copy this piece to the new
one you are making, use "F1","F2" keys to move around
different melodies. When you finish the combination press
"Esc" to get back to menu, the new melody you just created
will be added to the end of that category.
<10> Timbre
Not fully developed yet, you may treat it as an instrument
lib, so if your first instrument is "Drum-1", and in your
tempo table, you have tempo #2 goes with instrument #1, that
means you use "Drum-1", to perform tempo #2.
Use the four arrow keys, Home, PgUp, and PgDn to adjust the
timbre, but now it wouldn't do anything to your melody.
<11> Tempo_Set
For users' convinence, I designed "Tempo_Set" function, click
on it and then click either on an existing tempo set or click
on any of the 36 sort in the table, you may then input a set
of tempos, so when you use this tempo set all the tempos and
instruments in the tempos set will be used as a combination.
Use mouse to change the values. If you click the left button
on the tempo set number section (upper right) , you will be
moving around from one tempo set to another, to save a tempo
set, click the middle button on the tempo set number section.
<12> Load
To be on the safe side, you should click the middle button on
"Output/Bk" in the menu, so that you may have a *.text back up
copy of all the melodies you have, they would be stored in the
Dir_Text directory. So you may want to do this once in a while.
When you receive an updated version of NM_Update melodies---
Dir_Text.tar.Z, you may put it in to Dir_NM directory and
unpack it. In Dir_NM directory,
type: uncompress Dir_Text.tar.Z
-------------------------
then type: tar -xvf Dir_Text.tar
---------------------
Then run NM to load the new version, just click the "Load" on
the menu and then click on an empty category, so that after
you load the songs ( a mixture of all 34 sorts), you may
distribute them to the different sorts you have. I thought of
doing this automatically, but since evary user may change the
category names, it would cause confusion, so it's better let
user decide which category the melodies should go.
<13> Piano
It shows how NM representation crosponse to a piano board. No
sound now, try out both left and middle button, use right
button to get back to the menu.
<14> Print_Out
On IU's system it will send printout to Ps10. It take a long
time, so better not use it or use it during the none peak
hours.
To print a melody or tempo, click on "Print_Out", click on a
particular melody name, there will be a cross "+" appear on
the screen to replace the mouse pointer, you click on the left
mouse button again to print that screen. Then the next page of
the melody will appear and you need to click again to print it
out. So do the above untill you finish a melody.
Be patient, it will take 10 to 15 min. to print one page.
Another way to print out the screen is to type the following
lines into your .mwmrc file ( which can be found in your root
directory by doing: ls -a ). Or maybe .twmrc file.
-----
Buttons DefaultButtonBindings
{
...
Shift<Btn1Click> window !"xwd | xpr -device lw -rv | lpr -h -Pps4"
...
}
The above line means: send a screen copy to ps4 without
printing the title page --- to save time. So you may change
ps4 to whatever printer # you like.
So after you open your X window, just hold down the Shift key
and at the same time click the left button to print anything
on your screen, don't forget to click one more time when you
see a cross. This works beyound NM scope, it dumps any window
to a printer. So if you want to print out a melody, run NM,
click on "List", and click on "Print_Out", and click on that
melody you want to print, then hold down Shift key and click
left button, finally click the left button once more without
Shift key.
<15> NM is still under developing, but the main frame is there, and it
can meet most people's need, to play the melodies back on a Next
machine, you may use the "tts" file included in NM package ( in
Dir_TTS directory ) to translate a *.text file into a *.score
file, so the Next music player can play it back with CD quality.
To do this , just make two directories in your Next account:
Dir_Text, Dir_Score, as sub-directories, you run the "tts" in the
main directory like the following:
type : tts Dir_Text/a_melody_name.text
-------------------------------
This will produce a new file : new.text.score in
Dir_Text.
Or you may mv the "tts" into Dir_Text directory and
type : tts a_melody_name.text
----------------------
<16> Suggestions
Since we all love music and we have the convinense of an
efficient info passing method, it would be nice to broadcast
the melodies I have on a regualr basis, and each of you may
ask me to send you the latest version.
But where would these melodies come from ? Each and every one
of us is a single user, a single user's time and effort is
limited, but if every one can input one or two at a time then
we can share our energy as a group, and therefore maximize our
effort, so that our melody library will grow rapidly. In order
to benifit ourselves the following rules are required as a NM
club member :
[1] To join the NM club, just send me three melodies as a
start, I will put your name on the list, and in addition
you will get the latest NM library. After that, each time
I receive a melody from you I will send you the updated
NM lib. Which means if you e-mail me a new one, you may
receive the updated library with ten or twenty more new
melodies.
[2] To keep the NM melody lib quality, each melody you send
me should be at least one page long, which means the
melody should extend on to at least page "1". Of course
within the ten page extent that NM offers, the longer
the better.
[3] I will keep the right to examine every melody and decide
if it's in good quality, if not --- doesn't sound like a
melody --- I will not send you the latest lib. If this
happens more than 3 times, your membership will be
cancelled. By this way we can be sure our time is not
wasted on garbage processing.
[4] The most welcomed songs are those of traditional
appreciation such as :
On the Beautiful Blue Danube.
To Alice.
King ( Emperor ) Waltz.
When Johnny comes marching home.
Star spangled banner.
Home sweet home.
America, the beautiful.
My bonney.
Stars and stripes forever.
...
Or those which appeared on the top charts, such as:
Bad.
Opposite track.
Into the grove.
Escapade.
Man in the mirror.
Papa don't preach.
Let's have a holiday.
Caribean Queen.
Forever young.
Eastend boys and westend girls.
Rock around the clock.
Bye-bye love.
Rain drops keep falling on my head.
Front-seat jazz
Wait a minute Mr. postman.
Achey breaky heart.
Life is a highway.
She is his only need.
YMCA.
Get out of my mind, get into my car.
Who's that girl ?
Suicide Blonde.
Dance on the ceiling.
Cold as ice.
Can't touch this.
You have to live and learn.
...
Also, melodies by great masters are always welcomed,
such as :
Strauss.
Bach.
Schubert.
Beethoven
...
[5] This is an international network, therefore we can
enjoy music from different nations with a wide range
of color and flavor. This will help to broaden our
music knowledge and improve our music taste. Each week
or month I will update the NM lib, and put a list in my
public directory.
There will be two files, one is called : NM_Update ---
it includes all melodies already in the NM lib. The
other one will be called NM_Mark --- it will include
those which someone has e-mailed me they will input, so
that if you check both lists first before you input one,
there will be less chance that you are re-making the wheel.
So before you decide to input a melody, check out both
NM_Update and NM_Mark. If you think it will take
several days to finish inputing a melody, better inform
me, so that I would instantly put it on the NM_Mark
list, and no one else would do the same thing you are
doing.
When I receive a melody which was on the NM_Mark list ,
I will remove its name into NM_Update. If you think you
can finish a melody within one or two hours, then you
might not want to inform me first, because the chance
of someone else is inputing the same melody at the same
time is very small. So it's up to you.
OK, folks, see if you like NM, as the next step, I
considering output NM *.text files as MIDI files, and
the other way around.