WIDE
TFMX  lersomat eredetileg az Amiga Magazin rendelte, aztn velk a kapcsolat
megsznt,  pontosabban  el  sem kezddtt.  Utna a Guru kvetkezett, de velk
meg megbeszltem, csak akkor tesszk bele a lerst, amikor a TFMX zenmet is.
Ennek  mindssze  csak  az llt az tjba, hogy Gborca (a Guru program rja)
nem  brta  felfzni  a TFMX lejtszt az interrupt-lncra, gy elnapoldott a
dolog.  De m, rvendjetek, jn a rvid lers, amint mg az AM-nek grtem.


T.F.M.X. kkuszdihjban
------------------------

Azrt  a  TFMX-rl  rok,  mert mr sok zeneszerkesztt lttam, de a TFMX veri
mindeniket  magasan,  meg  ezt  ismerem legjobban.  Nhny helyen hivatkozok a
Soundtracker-csladra;  mivel  ezek  a  legismertebb  zeneszerkesztk, remlem
megrtitek az ezzel hasonltgat fejtegetseket.  Let's go.

Elszr is szeretnk lerombolni nhny nphitet.
- A TFMX nem Soundtracker (Noisetracker, stb) - kompatibilis.
- A TFMX nem rajzol kottt a kpernyre,
- A TFMX nem 8 szlam, hanem 4 (Amig-n ez igazan szokatlan).
- A TFMX fut fl megs gpeken is (de elny, ha bekapcsolod a fast ram-od).
- A TFMX kezelshez nem kell rendszerprogramozi s zenetanari kpests.



Alkotok, copyright
==================

A  koncepci  s  a lejtsz kdolsa Chris Hlsbeck, az editor Peter Thierolf
munkaja.  Minden jog a DEMONWARE cg.



A TFMX workstation V1.5 a kvetkez fizikai elemekbl ll:
==========================================================

- Manual: minden pnzt megr, korrekt dokumentaci.
- nhny demo-dal, datadisk-formz (lemezen);
- 4 db vltozata az editornak (2-2 db megs/flmegs gpre, 2-2 sok/kevs
  szn grafikval, ezek permutcii adjk ki a mgikus 4-est);
- REPLAYER rutin, PC-relatv "raw-code", kb. 18-24 rasztersort eszik;
- Vdelem:  joystick dugban viasz-szer anyagban szik pr alkatrsz
(titkos elrendezsben), enlkl a prg lefagy.

(Story: jtt hozzam egy arc, es megltta a tfmx kziknyvet.
- J, neked ez is van? - nzegeti.
- Persze, ez gyri, itt a dug is, minelkl hideg lesz - mutatm.
- , akkor ebben benne van, hogy mi van a dugban - forgatja a knyvet.
- Igen, persze, htul a fggelkben van a kapcsolsi rajz is.
- Tnyleg? Akkor ez tk j...
- Tnyleg, na, nem mondanm.
Ennyit a ltogatimrl, back to liiife, ahogy a demosong is mondja.)



A TFMX V1.5 elve es mkdse
============================

Remlem, ismers a Soundtracker-dal szerkezete:
Sample -> Pattern/Track -> Song

A TFMX-nta szerkezete pedig a kvetkez:
Sample -> Macro -> Pattern -> Track -> Song
Azaz  a  digi  mintt  nem lehet azonnal lejtszani, hanem eltte macro-t kell
belle  formlni.   A  macro-kat  nem  lehet   sszegezni   song-ban,   eltte
pattern-ekbe  kell  nyomni  ket.   Tbb pattern egyidej hangzsa tesz ki egy
track-lpst,  a  track-lpsek  sszessge adja csak ki a dalt.  Mivel a TFMX
mkdse  bonyolultabb,  lejtszja is "lassabb", mint a Soudtracker-ek (18-24
raster, nicsak, feljebb is ennyit rtam!).

TFMX-"Kissztr"
----------------

- Sample,  Hangminta,   Digi:  chip ram-ban elhelyezked adat, ami lejtszsra
vr.  A  Soundtracker a  sample-kat(-ket)  kzvetlenl  jtssza  le a pattern-
ekben.

- Macro  (e:   mkr):   pr  lpses   vezrl szekvencia, ami meghatrozza a
lejtszand  hang  hosszt,  honnan kezdje a digi lejtszst, milyen hosszan.
Sajat kis token-nyelvnek ksznheten "bonyolultabb" feladatokra is alkalmas,
mint  pl.   kls  jelre  tortn  elhalkts,  stb.   Egy  macro egy szlamot
produkl (egy macro-t viszont brmelyik szlamba benyomhatunk).

- Pattern:   pr  lpses  vezrl  szekvencia,  ami  macro-kat indt valamint
vezrl feladatokat lt el.  Mind a 4 szlamhoz hozzfr.

- Track:   sok  lpses  lista,   ami  tartalmazza  a  Pattern-ek egyms utni
sorrendjt.   Egyidejleg  8  pattern-t  jtszik le.  Ha az egyik pattern (a 8
kzl) "End" utastshoz r, a kvetkez track-lps kvetkezik.

- Song:  a track-lista egy darabja,  amire az els es utols lps megadsval
hivatkozhatunk.



A tfmx szerkezete az editor tkrben (klti cm, nem?)
=======================================================

7  f  kperny-lap  van,  ezek kztt brmikor t lehet kapcsolni, lsd lent.
Ezen kvl vannak f funkcik, amiket brmely f laprl el lehet rni, ezek:

- PLAY/STOP/CONTINUE vezrli a lejtszst,
- CURRENT SONG +/- vlasztja ki az aktulis dalt a 32 kzl,
- CUT/PAS/INS/DEL editl ikonok mindig az aktulis lapon rombolnak,
- LOAD SONG/SAVE SONG/LOAD SAMPLE kpezi a disk mveletek halmazt,
- ESC ikonon keresztl kezdemnyezhetjuk a task lezrst.

A 7 f lap logikai sorrendben:
------------------------------

1. LOAD/SAVE SONG: hasznlhatunk fastdir-t is, valamint lehet trlni is.
2. LOAD SAMPLE: ugyanaz a kp, mint 1., de logice a 3-hoz kapcsoldik.
3. SHOW  SAMPLELIST:  a  betlttt hangszerek listja.   (max. $100  hangminta
szmra  van hely, elg lesz?) Ha IFF formtum a hangszer, az esetleges hurok
(loop)  cmt  is  mutatja  az  offset  kezdcm s hossz mellett.  Itt tudunk
trlni  hangszereket  a  listbl,  s  jat  felvenni, de csak veremszeren:
mindig  az  utols  trldik,  s  az  j minta az utols utn tltdik.  Ez a
ktttsg azrt van, mert a macro-k rvnyt elrontan, ha az egyes hangszerek
ide-oda mozognnak a trban (ugyanis a macro-k nem a hangmintk nevvel, hanem
fix  offset-cmekkel  hivatkoznak  a  betlttt  digi  masszkra).   Hasznos
funkcija  e  lapnak  a  CREATE  MACRO.   Ez  a  PASTE BUFFER-ben helyezi el a
kijellt  SAMPLE-rl  a  legegyszerbb macro-t.  Ha loop-olt a hangszer, akkor
olyan  macro-t  keszt  belle,  ami  sokig  szol.   IFF, RAW es FUTURE tpus
hangokat  lehet betlteni, max.  hossz a hardware altal szabott 64K, de ez nem
korltozza  a  lejtszhat  hangok  hosszt  (emlkezz,  a  hang nem szlal meg
kzvetlenl, csak a macro-k ltal).

4. EDIT MACROS:  sszesen $80 macro kszthet.  Lehet  pufferesen  msolgatni
macro-rszeket,  beszrni  trlni  a  macro  sorait.   A  szerkesztmez ngy
oszopos:

lpesszam / macro-utasits tokenje / utasts rvid lersa / paramterek.

Ebbl  csak  a  macro tokenjt es a paramtert kell berni, a tbbi automatice
kitltdik (tkp.  dokumental funkci ez).
A  jobb  megrts  kedvrt  plda kvetkezik (a TFMX editor hexban szmol, a
tovbbi pldk is ezt kvetik):

     Step    Nr.   Statement             Parameter
**** 0009 ** 15 ** Go subMacro xx/xxxx ** 040005 **** 
**** 000A ** 19 ** Set one shot sample ** 000000 **** 
...  
Nincs  tl sok macro-vezrl token (ssz:  $19), knny megjegyezni ket.  Egy
macro  hossza s az, hogy a sample-listbl mi mdon mert, tkp.  ktetlen.  A
macro-utastsok  a  hang hosszt, vibrcijt, hangerejt, stb.  lltjk be,
valamint  a  macro-n belli egygybb vezrlsi feladatokat ltnak el.  Nhny
macro-utasts tjkoztatskpp:

01 SETBEGIN     - meghatrozza a lejtszand hang kezdett,
02 SETLEN       - hosszt;
04 WAIT         - vr x raszteridt,
18 SAMPLELOOP   - ismtls megadsa,
05 DMAON        - hang indtsa a belltott (SETLEN, SETBEGIN) rtkekrl,
14 WAIT KEY UP  - patternbl leadott jelzsig vr,
0F ENVELOPE     - elhalkts; stb.

Tulajdonkppen  ez  az  elnye  a  TFMX-nek  a  hagyomanyos zeneszerkesztkkel
szemben:   a   hangminta  nem  azonnal  lejatszand,   hanem  a  hangmintkbl
tetszleges  torzitst  vezrl  macro-k hozhatk ltre, ezek szlnak klnbz
magassggal.  gy nem muszj (br lehet pattern-bl) minden hang elinditasakor
meghatrozni  hangert,  vibrciot,  azt a macro-knl egyszer mr megadtuk.  A
ksz  macro-t  a  TEST  ikonnal  tudjuk  brmilyen  magassgban megszlaltatni
azonnal.

5. EDIT  PATTERNS:   sszesen  $80  pattern  keszthet.  A szerkesztfunkcik
hasznlata  (CUT/PAS,  stb.)  teljesen  ugyanaz,  mint  a macro-knl.  Egy sor
felptse pedig:

lpsszm / hangmagassg v.  utasts / ABC-s hang v.  utasts szvege /
macro-szm / hanger / csatorna / finomhangols

A  lpsszm,  abc-s  hang  vagy  utasts  neve  automatice   kitltdik.   A
hangmagassg   hexadecimlisan    berand,   ami   sokkal  jobb,    mintha  a
qwertyuiop-zongorn  kne  beszenvedni a patterneket; egybknt a hangmagassg
kijelzdik   abc-s   nven   is   (zenei  analfabtknak  plda:   C-1,  D#3).
(rdekessgkppen:   a  "H"  hang nem "B"-knt jelenik meg, hanem a magyar (s
germn) zenei szoksoknak megfelelen "H"-knt).
A  hangmagassg  helyre  berhatunk  utastsokat  is,  ezek  az  $E0 feletti
"hangokat"  tik  ki ($E0 mr a huszadik oktv, le sem lehet jtszani).  Azaz,
egy  pattern utastsok s hangok sorozatbl ll.  Utastsok mindig kellenek
a  macro-indtasok  kz,   mert   legalbb  a  ritmust  meg  kell  adni  WAIT
utastsokkal.   (Hrom  egymst  kvet  macro-indits  kzl  az utols lesz
rvnyes   -   hacsak   nem   ms-ms   csatornra   vonatkoznak).    A
pattern-utastsokbl zeltkppen:

F3 WAIT    - vr x raszteridt,
F4 STOP    - befejezi a pattern-t s lell,
F0 END     - befejezi a pattern-t s a kvetkez track-lpst vltja ki,
F2 CONT    - mshol folytatja a lejtszst (macro/lps),
F5 KUP^    - macro-nak ad le jelzst; stb.

A  pattern-utastsbl  tnyleg  nincs  sok,  mivel  a  pattern feladata jval
egyszerbb  (macro-k  idben  elindtsa),   mint  a  macro-k   (hangeffektek
kikeverse digibl).

Egy pattern-lpsen bell a tbbi oszlop jelentse:
Macro-szm:     hnyas macro-t jtssza le,
Hanger:        milyen hangern,
Csatorna:       0-3 no comment,
Finomhangols:  skla-pontatlansag korrekci (flhangnal kisebb tvra).

Egy   pattern   akr   mind   a   4   szlamot   is  megzengetheti,   (mint  a
Soundtracker-ben);  persze  ez  nem  clszer.  Ha pl.  2 szlam fix kisretet
jtszik, a msik kett meg tilinkzik r, ekkor minden pattern-be kell msolni
a  fix  ksretet  jtsz  alapozst.   Helyes  t  a  kt  fix szlam egy-egy
patternbe  mlesztse,  a  msik  kettnek pedig kln pattern-ek biztostsa.
gy  csak  a  track-be  kell berni sokszor a ksr pattern-ek sorszmt, nem
kell  mindenhov  bemsolni  ld.  Soundtracker.  Teht ltalban rdemes kln
tenni  a  szlamokat.   Viszont  stereo  hatsokat  jl  ki  lehet keverni kt
ellenlbas  csatorna  egy  pattern-be  zsfolsval.   gyelnnk  kell, hogy a
csatornk  elosztsa miatt a dal sszeraksakor ne kerljnk gondba; csatornt
kiosztani ugyanis csak itt lehet.  Plda:

     step   note status   macron.                     vol chn detune        
**** 0000 ** 12 ** C-2  **  01  **                **   8   1    00
**** 0001 ** F3 ** Wait **  03  **  <count 00-FF  **   0   0    00 
**** 0003 ** 15 ** E-2  **  01  **                **   8   1    00
**** 0004 ** F3 ** Wait **  03  **  <count 00-FF  **   0   0    00 
**** 0005 ** 12 ** C-2  **  01  **                **   8   1    00
**** 0006 ** F3 ** Wait **  03  **  <count 00-FF  **   0   0    00 
**** 0007 ** 15 ** E-2  **  01  **                **   8   1    00
**** 0008 ** F3 ** Wait **  03  **  <count 00-FF  **   0   0    00 
**** 0009 ** 18 ** G-2  **  01  **                **   8   1    00
**** 000A ** F3 ** Wait **  07  **  <count 00-FF  **   0   0    00 
**** 000B ** 18 ** G-2  **  01  **                **   8   1    00
**** 000C ** F3 ** Wait **  07  **  <count 00-FF  **   0   0    00
**** 000D ** F4 ** Stop **  00  ** Stop this patt.**   0   0    00

Ez  a  plda  a  nagy  npszersgnek  rvend "Boci, boci, tarka" kezdet dal
cmad rszletnek tfmx-kottja.  Az 1.  hangcsatornn (azaz jobb oldalt, mert
0-tl  szmozzuk)  csendl  fel  a dal a 01-es macro hangjn, 8-as gervel.  A
WAIT  utasts  paramtere a "macron." rovatban tallhat.  Ez rdekes, mert a
WAIT  00  vrakozsi  ideje  1  raszter,  azaz  a WAIT-nl (de a macro 04 WAIT
utastsnl  is)  egyet  hozz  kell  adni, hogy a vrakozsi rtket kapjuk.
Azaz   a   pldban  tkp.    4-4-4-4-8-8  a  ritmus  (ti-ti-ti-ti-t-t,   aki
Kodly-mdszerrel  tanult,  az  megrti).   Azaz  ami  tfmx-aritmetika szerint
0+0=1, emberi nyelvre leforditva 1+1=2.  Ez az egy logikai bukfenc, mondhatnm
tripla-csavarszalt van a TFMX egybknt tiszta felptsben.

6. RECORD  PAGE:   egy  patternyi  anyagot zongorzhatunk bele a  PATTERN COPY
BUFFER-be,  vagy az aktulis patternbe.  Lehet metronmot, idzts-korrekcit
krni  (pl.   csak  8-cal  oszthat  WAIT-ek  kerlnek a patternbe), lassabban
bejtszani  a  lejtszsi  sebessgnel,  stb.   Ha  a  KEYUP  funkci  be  van
kapcsolva,  akkor  nemcsak  a  billenty  lenyomsra,  hanem felengedsre is
utasts    keletkezik    (lenyomskor   a  megfelel   hangmagassg   rtke,
felengedskor  KEYUP,  azaz  macro  szmra  jelz  utasts).   Itt  el  kell
magyarznom  a  KEYUP pattern-utastst s a WAIT KEYUP macro-utastst.  Ha a
macro  WAIT  KEYUP-hoz  r,  akkor addig vr, amg a pattern az szlamnak nem
jelez egy KEYUP utastssal, vagy a max.  vrakozasi ideje le nem telik.  Mire
j ez?  Van mondjuk egy vgtelentett szintetiztor-macro.  Tegyk fel, hogy a
0006.   lpsig  belltottuk a hangert, hosszt, ismtls (loop-ols) helyt.
Mivel  az  0007.   lps egy nagyon hossz vrs, sokig szlna.  Viszont ha a
pattern  KEYUP utastshoz r, akkor a 0008.  lps kvetkezik, ami lehalktja
a hangot:

     Step    Nr.   Statement             Parameter
**** 0007 ** 14 ** Wait key up ....xx count VBI's ** 000076 **** 
**** 0008 ** 0F ** Envelope  speed/cont/endvol    ** 040100 **** 

Azaz,  amg  a  KEYUP (magyarul billenty felengeds) nem kvetkezik be, addig
szl  a  hang.   A  RECORD  TRACK egyetlen lenyomsa pedig C-1/WAIT/KEYUP/WAIT
pattern-utasts sorozatot generl (C-1 helyett a lenyomott billenty rtend),
ami  megfelel  macro-k  esetn "amg nyomod, addig szl"-hangokat eredmnyez.
(Nhny kis prntygi szintetiztorknl is megfigyelhet hasonl).
Ez  mg  nem  minden, lehet olyan macro-t is kierszakolni, ami egy hangmintt
minden magassgon ugyanolyan hosszan jtszik (lsd demosong "back to liiife").

7. EDIT TRACKS:  dal vgs formja, szerkezete:  

lpsszm / pattern1 / vgs hangols1 / pattern2 / vegs hangols2 ...  

Max.   8  pattern-t  tudunk  egyszerre  megszlaltatni.  Ha csatorna-kiosztsi
konfliktus  esete  forogna  fenn,  a jobbrbb ll (ksbb lejtszsra kerl)
szlal meg a kijellt csatornn (nem clszer ilyet okozni).  Max.  lpsszm:
$200, de ezen a $200-on bell kell elfrni a lehetsges $20 song-nak.  Ezt gy
lehet  megvalstani,  hogy nem minden song a 0000-s track-lpstl kezddik,
es egyszeren egyms mg szerkesztjk a song-okat.  A kulnbz song-ok kzs
macro-kat  s  pattern-eket  hasznlhatnak.   A  vegs  hangols flhangonknt
rtend,  az  egsz  pattern-re  vonatkozik.   Hogy minl egyszerbb legyen az
let,  mg itt is vannak vezrlutastsok, de tenyleg kevs, jelentsket nem
is  irja ki a szerkeszt (ellenttben a macro- s pattern-utastsokkal).  Itt
a  pattern  ($00-$80)  szma  helyett  $EF rand a legbaloldalibb csatornba,
vegs-hangolsknt  pedig  $FE, s a msodik oszlop vgs-hangolsa tartalmazza
az "utasts" kdjt, a tbbi oszlop pedig a paramtereket.  Ezek a parancsok:
STOP SONG, LOOP SONG, FADE, TIMESHARE on/off.



A TFMX-dal lejtszsa
=====================

A szerkesztbl:
----------------

Az  1.  pont szerint betltjuk, vagy a 2-7.  pont szerint berjuk a macro-kat,
pattern-eket, sszelltuk song-okk.  Ha utbbi mdon jrunk el, ne felejtsk
el  kimenteni  a  dalt!   Ha  a hangszerek nem vltoztak az utols ments ta,
kapcsoljuk  ki a SAVE ALL funkcit, gy csak a macro-ink, pattern-jeink tmege
fog  disk-re  magnetizldni.   Ezutn  vlasszuk  ki a neknk kedves song-ot,
play.   Ne  felejtsk  lekapcsolni  a  metronome  funkcit, ha mr e nlkl is
rezzk  mr  a  ritmust.   (A  metronome  a  4  szlamon fell ketyeg, ritmus
ellenrzsekor hasznos).

Programbl:
-----------

Egy ksz dalhoz 3 file tartozik:

info.dalocska_ingyombingyom-tliber+tutliber-mliber
mdat.dalocska_ingyombingyom-tliber+tutliber-mliber
smpl.dalocska_ingyombingyom-tliber+tutliber-mliber

Az info.  szerept nem tudom pontosan, nagyon hossz file, s majdnem az egsz
0000.   A  legvgn  fel vannak sorolva a betlttt hangmintk file-nevei, meg
pr  titkos  longword  van  a  kzepn,  de  a  tbbi zero; taln szerkesztsi
informacit  tartalmaz (vagy minsti a a vgzett munka rtkt, ezrt csupa 0
az n esetemben).  A legjabb kutatsok eredmnye szerint hinya vagy srlse
kellemetlenn  teszi  a  szerkesztst  (pl.   a  TEST MACRO ikon aktualizlsa
esetn  a macro-n kivl elindtja az egsz song-ot, vagy ms esetben szintn a
TEST MACRO funkcit mly hallgatsra kszteti).  De nem is ez a file a lnyeg,
mivel lejtszshoz nem kell, mert:
  
smpl.#?   tartalmazza  a  hangszereket,  ezt muszj CHIP tpus rhat/olvashat
kzvetlen hozzfrs memriban elhelyezni, az

mdat.#?   pedig  az  ltalunk bert macro-kat/pattern-eket; ez lehet akr FAST
tpus rhat/olvashat kzvetlen hozzfrs memriban is.  (Jobban sikerlt
szimfnikat EPROM-ba is gethetnk, smpl legyen EPchipROMban!).

A  lejtsznak  rengeteg  funkcija van az inicializlson s a raszterenknti
lejtszson  kvl:   halkts,  stop/continue,  macro  bejtszsa dal kzben,
csatorna  felszabadtsa  tfmx-uralom all, pattern lejtszsa, stb.  A rutint
brhov  tlthetjk,  (mind  CHIP  tp...,  mind FAST tpus rh..) mert a kd
PC-relatv  (AMIGA-abszolt).   Na,  ha  ezek benn vannak a trban, kzljuk a
lejtszval  a  smpl.#?   s az mdat.#?  file kezdcmt valamint a lejtszani
kvnt  dal  szmt,  majd  VBI-nknt  (Vertical Blank Interrupt) hvjuk meg a
lejtszrutint.  Ja, s kapcsoljuk be az erstt.

C  nyelven rt programokbl is minden tovbbi nlkl lejtszhatunk tfmx-zent,
de  ekkor  a  player-t fel kell fzni az interrupt-lncra.  (Comiga, mirt nem
fzted  fel  a  jtkodba  kldtt  zenmet   az   interrupt-lncra?!   Tessk
azonnal...!  Megmondlak a Gborcnak m!)



j verzik, gretek
====================

Az  TFMX j vltozathoz grtek MIDI-kezelst, meg sampler-t, igy a hivatalos
doku.  Szinte biztosra vehet a fejleszts; a szerkezet bizonyra maradni fog,
az editor pedig knyelmesedik es bvl, legalbbis n ezt lmodtam.

Utsz a "TFMX bitrl-bitre" c. tudomnyos rtekezsem 142. ktethez
---------------------------------------------------------------------

TFMX-tanfolyamom  kicsit  hosszabbra  sikeredett  egy  futlagos lersnl, de
remlem,  sikerlt  megismertetnem  e  kitn termket a nagyobb sugar Amigs
krkkel.  Ha valami nagy krsget rtam volna (eslye 1:1), vagy ha krdsed
van, rj a Soc.Brigade cmre.

                                                          ERN0 tm
                                                     egy Soc.Brigade tag
