Jump to content

Wanted: TMC and/or TM2 musics (theta music composer)


Recommended Posts

Hi all,


For years and years I have been using Chaos Music Composer. That was a pleasure.


But I want to move on. I have the feeling the Theta Music Composer has more possibilities.


I don't want to use RMT, since I want to work on native atari 8bit computer.


But... to get used to the program, I would like to have some examples. On the ATR I found here TMC 2.0H I have a few examples, but I'm sure there are more...


Is there an ATR available with a plethora of examples?

I know there are zip files full of Chaos Music Composer files... So I hope this also exists for TMC.


Thanks in advance!



Link to comment
Share on other sites

Enotracker by Adrian 'Epi' Matoga is fully compatible with TMC: https://github.com/epi/enotracker/releases


You can load .TMC files via cmd.exe: xtmc tmc_file.tmc


TMC v2.0 manual is here:

        TMC 2.0 Manual: 

	General information:

	The program was designed with the 
easyness of use in mind. Generally 
the cursor is moved with cursor keys 
(arrows), pressing a Ctrl key is 
sometimes needed. The numerical 
values are entered with keys 0-9 and 
A-F. Any options may be exited with 
Esc key, confirmed with Return (not 
Enter, huh . Lots of things 
follows the example of other music 
programs, such as AMC, BMC, CMC, 

	In standard, modyfying keys are 
marked with abbreviation. The ! mark 
stands for Shift key, ^ means 
Control key. So, !1 means keys Shift 
and 1 pressed simultaneously, and 
^Ret means Control and Return at a 
time. Left, Right, Up, Down stands 
for appropriate arrow keys (with no 
Control). Similarly Clear, Insert, 
Delete are single keys, without 
Shift or Control. Inverse (or Inv) 
is a key oc the bottom left 
(sometimes called Logo key).

	In some cases Atari keybors is 
changed into music keyboard, such as 
this one in piano. So, in that case 
Z key is a C note, the Q key is aldo 
C, but one octave higher. Rest of 
keys are compliant to the piano 

	The TMC.SET file, placed in program 
directory (not folder, huh  is a 
configuration file, and is readed on 
program starting.


	Main program menu:

After the program has run the menu, 
you see:

Composer: Enter the main part of 

Information: Allows a three lines of 
information to be added to music 
data, may contain info about a 
track, or an author, e.g.

Load Music: Reads music data into 

Save Music. Writes music. The data 
is loadable file in DOS format, so 
the load address is needed. For 
musician unessential thing, for the 
coder is the matter of life or 

Save Player: Save the replaying 
routine. For programmer even more 
important .

Directory: Allows to see directory 
contens. Moreover allows to 
protect/unprotect a file, delete, 
filename change, create a directory, 
set a standard directory (in MyDOS 
accessible as D:*.*, in SpartaDOS X 
as D1:*.*), change current drive, 
etc. A chosen file is always 
inserted into filename buffer, anf 
therefore accessible in Load/Save 

Instruction: A short (?) instruction

Configure: Configures the program. 
Possible options:

- POKEY configuration: sets the 
number, and a type of use of 
sounfchips. The respective stereo 
modes differs in the way they 
dispose the channels. In normal mode 
the sound played on the left channel 
will use the main envelope curve, 
and the right channel will use the 
additional envelope, unless it's not 
occupied by the right channel sound. 
In the RMT mode the sound played on 
the left channel will use the main 
envelope curve, and the right 
channel will use the additional 
envelope (such as in the RMT 
composer). The Reverse settings 
swaps the left and right channels.

- Quadro output settings: allows to 
precise set up which envelope will 
be played on particular POKEY.

- Memory usage: using the extended 
memory. The changes made here will 
be applied only after loading a new 
music, or after using the New 
command. Moreover, here should be 
entered exact values that turn on 
chosen bank on $d301 (PORTB). The 
values must be odd, because the 
program needs the presence of OS ROM
when accesing such memory banks.

- Type of subdirectories: 
subdirectory handling method. On 
Atari systems there are 2 popular 
DOSes with subdirectories 
attendance, alas, non-compatible 
with each other. In auto mode the 
program recognizes which DOS is 
present, the recognition is based on
the $700 cell which should contain 
'M' for MyDOS, and 'S' for Sparta. 
In the case it won't work in 
particular DOS, here is the ability 
to force the right work mode.

- Restore default: resores default 

- Save TMC.SET: writes configuration 
file in the program directory.

- New: Cleans all music data.

- Exit: Returns into DOS or any 
other system.


	Main program (composer)

	The program's screen is splited for 
a number of windows: - instrument, 
where the instruments are created - 
pattern, where the fragments of 
composition are created with the 
instruments - song, where the final 
composition is assembled - 
information, where the program 
status may be found

	The Tab key is used to move focus 
among the song, pattern and 
instrument windows. 	In each window 
there are different active key 
combination. But some of them works 
always: - !Left, !Right: change 
instrument in the instrument window. 
- !Up, !Down: change the octave. - 
<, >: change the channel, the sound 
is played. - ^G: change the initial 
tempo of composition. - ^H: change 
the number of replay routine calls 
per frame. - ^Q: go to another 
instrument, pattern, line of song 
(specified number needs to be 
entered). - Help: a short program 
manual. - !Esc or ^Esc: exit to main 

	The Start key may be used to see 
the overall time the replayer eats 
(only when the replayer is called 
more than once per frame).


	The Information window:

	The following informations may be 
found here:

- SP:5 - initial composition tempo, 
may be set with ^G. - FT:1 - number 
of replay routine calls per frame. - 
1-2 - currently set octaves, when 
the notes are entered, may be change 
with !Up and !Down keys. - V:-- - 
standard volume when entering the 
instruments into pattern. May be set 
with !W. May be cleared with ^W. - 
M:00 - a value of the special flag 
set in a pattern - F:2A80 - number 
of free memory, in hexadecimal (to 
be easier), when the end of free 
memory is reached, a red blinking 
OUT OF MEMORY is shown. - 00:00:00 - 
a timer, shows the playing time.


	The Song window:

	Shows a piece of all 256 lines of 
the song. In the very top line may 
be found information which line is 
in edition, and the column headers 
for all 8 channels. A headphone 
symbol in this place means that the 
particular channel is muted.

	Below the long lines themselves may 
be found. Each line contains 
following information: - pattern 
lenght in the particular line of 
song. Standard value is 40. By 
decreasing it to e.g. 30 we can 
compose in tempo 3/4. Value of 0 
means end of playing, value of 80 or 
higher means jump to another song 
line. Number of this line is shown 
instead of pattern value of channel 
L0. - number of pattern playing on 
channel L0, and below - it's 
transposition value.

	Keys: - !Insert, !Delete - extend, 
narrow lines. - Return, !Return - 
play from current line, play from 
the beginning of song. During the 
playing it's possible to try 
instruments' tone (change the 
number, octave, track). Space (this 
long one on the bottom) ends 
playing. - !1 to !8 - turn off 
particular POKEY channels. On the 
header of corresponding column the 
headphones symbol is shown. - ^X, !X 
- from the cursor position until the 
end of song swaps values of two 
entered tracks. - ^C, !C - copy one 
track into another. - ^T, !T - enter 
trancposition on given track. - !Tab 
- swap the channels: current and the 
opposite one (it means: the left one 
if the cursor is on the right one). 
- ^E - activate the pattern window 
and edit the pattern currently shown 
by cursor.


	Pattern window:

	This window shows 27 lines of 
pattern. Pattern's number is shown 
on the top. The '-' sign means empty 
pattern, '+' means not empty one. A 
letter followed by the sign has a 
meaning: - E (empty): all 
instruments have both envelope 
curves empty. - M (mono): not more 
than the main envelope is set (not 
empty). - A (additional): not more 
than additional envelope is set (not 
empty). - S (stereo): both envelopes 
are in use.

	In standard one line of pattern 
looks like that: 00 C#1 01 FF5 	The 
values mean: - number of line in a 
pattern (from 00 to 3F), - a note 
(with octave), - number of 
instrument, - volume of main and 
additional channel and a new tempo. 
	If instead the note there is a 
following symbol: R:1 31 - it means 
the special code number 1 with value 
of 31 (in hexadecimal). In case of 
lack of any value, the last value is 


- Space - clear on cursor position. 
- !Space, ^Space, !^Space - clear 
only the instrument, volume, tempo. 
- ^arrows - change the volume. - 
^0..F - change the main volume. - 
!0..F - change the additional 
volume. - !^arrows - change tempo. - 
!^0..F - change tempo. - R - set a 
special code. Then the code 0..F 
should be entered, and the value of 
code. Currently the following codes 
are established:

 - 0: sets the special mark with 
given value. May be usefull in 
demos, where the musician can mark 
the place of effect change.
 - 1: identical with parameter of 
instrument according to effect type 
and it's paremeter.
 - 2: identical with parameter of 
instrument according to the speed of 
effect change.
 - 3: identical with parameter of 
instrument according to arpeggio. - 
!K, ^K - set/clear the flag (a dot 
on the left side). With the flag set 
all global operations (such as 
transposition etc) will take effect 
only on the part of pattern between 
the flag and the cursor's position. 

- Delete - copy the pattern's 
position from the flag into the 
cursor's position, and moves both 
the flag and the cursor one line 
down (useful to copy parts of 
pattern). - !Insert, !Delete - 
extend/narrow lines. - ^L, ^S - 
load/save pattern data. - ^Clear - 
moves the pattern into buffer. - 
^Insert - recovers the pattern from 
the buffer. - ^Delete - overlaps the 
pattern from the buffer onto current 
one (into the empty lines only). - 
Return, !Return - play pattern, play 
pattern from the beginning. - 
^Return - play current line of song 
(allows to "hear" current pattern in 
the context of another ones).

- !Inv, ^Inv, !Caps, ^Caps - allows
to play with the synchronous entering
notes in the pattern. - !Tab - 
changes the instrument under cursor 
to the current one (in instrument 
window). - !X, ^X - changes all 
notes of given instrument to the 
another one. - !T, ^T - transposite 
all notes of chosen instrument. - 
![, !] - transposite current 
instrument by 1. - !V, ^V - change 
the volume of chosen instrument. - 
!W, ^W - set/clear the standard 
volume of instrument. When it is 
set, all instruments entered into a 
pattern will have such a volume 


	Instrument window:

	This window shows 26 envelope 
pillars of overall 85. Below there 
is a set of 19 values defining 
general sound characteristics. The 
instrument is played in the 
following way: with each player call 
(1 to 4 times per frame) the next 
envelope pillar is readen. Upper 
envelope defines main channel, the 
lower one defines additional channel 
(the treatment of the main/additional
channels depends on the set mode:
stereo/RMT stereo). 

The 4 values below means as follows: 
- Distortions (usually the A value 
is used for clear sound, C for 
basses and 8 for drums, odd values 
(e.g. F) turns the generator off and 
allow to directly operate the 
membrane of speaker). - Type of 
accent (a special tone) is below. - 
The lowest two values are the most 
significant and the least 
significant digit of the accent 
parameter. 	When the player reaches 
the end of envelope definition, it 
jumps to the specified point. It 
makes a so called loop. The range of 
looop is shown by a bracket over the 
instrument definition.

	Possible accents are:

- 0: to the calculated frequency the 
parameter value is added. - 1: the 
parameter value will permanently 
increase the sound frequency (will 
be added in every pillar, and even 
will be added to itself). - 2: sound 
transposition. - 3: constant sound 
transposition (see accent 1). - 4: 
change the timbre of the filter (the 
frequency of the filtering channel 
will be increased with this value). 
- 5: constant change of the filter 
timbre (see accent 1). - 6: the 
fixed frequency is played. - 7: the 
fixed note is played. 	In the case 
when the accent value is increased 
with 8, the second AUDCTL value is 
taken, instead of first one.

	Below the envelope there is an 
empty line, where may be found the 
mark used in the global envelope 
edition. The more below (on the 
brighter background) there are 
instrument parameters and 2 special 
values: - INS: the number of the 
currently edited instrument, the 
signs before and after the number 
have the same meaning, as in the 
pattern window. - P: it's cursor's X 
position. It is important, because 
the envelope screen may be moved 
(the overall number of envelope 
pillars is greater than may be seen 
in the window).

	Instrument parameters:
   First row: - The lenght of 
envelope curve. - The jump point 
after the end of envelope (the 
beginning of loop). - Filter timbre 
(in filtered 2-channel sounds). - 
First AUDCTL value, controlling the 
sound tone, typically the following 
values are inserted there: 0 for a 
normal sound, 6 for 2-channel 
filter, or 78 for 2-channel bass 
(only the bits significant on 
particular channel are used, so it's 
possible to turn on both filters or 
both basses at once). - Second 
AUDCTL value.

   Second row: - The speed of main 
envelope droop. - The speed of 
additional envelope droop. - A type 
of sound (first digit) and it's 
parameter (second digit). Possible 

   - 0: pure sound.
   - 1: light vibrato. The 
frequencies are calculated in the 
following way: basal, 
basal+parameter, basal, 
basal-parameter, and so on.
   - 2: vibrato. The frequency 
smoothly oscillates between the 
basal-parameter and basal+parameter.

   - 3: heavy vibrato. Similarly to 
the one before, but the calculations 
are done for the note transposition, 
not for the frequency.
   - 4: pitch droop.
   - 5: fast pitch droop (by the 
   - 6: constant parameter add to 
the frequency.
   - 7: unused (for now).

All values increased by 8 means the
negative parameter (with minus sign).
- A delay of starting to operate the
type of sound. - Two highest bits 
defines the frequency table: 00 is 
used with the A type distortion, 40 
and 80 with the C, and C0 I don't 
remember; the rest of value specifies
the speed of sound modification by
means of it's type. For 2-channels
bassess 80 is the same as 00 and C0
as 40. - First digit is the number of
values used for arpeggio (the last
row of values in instrument's
definition) and the speed of the
change. Typically the values are
taken from the first to the last (a

If the first digit is increased by 8,
the values are taken from the first
one, to the last one, and back from
the last one to the first one
(oscillation) and so on.

	The keys:

- ^arrows - volume edit. - !^UP, 
!^Down, !^<, !^> - change the volume 
of whole envelope (or fragment from 
the mark to the cursor). - !Insert, 
!Delete - extend/narrow the pillars. 
- ^Clear - moves the instrument into 
buffer. - ^Insert - recovers the 
instrument from buffer. - ^Delete, 
!^Delete - recovers only the 
envelope/parameters of the 
instrument. - !Tab, ^Tab - copies 
the main envelope into the 
additional and vice versa. - ^L, ^S 
- load/save the instrumant. - !K, ^K 
- set/clear the flag.


	And that is all.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...