DOSLwp3$|G"&|$<fRJf`B,y3|#K,#J(#|$H`pN8LRJg`N,yCNJg @ hpNupNudos.libraryH,yCNh#naaaPa4a3 z*yn2#f#j33*"#lr#Hl33`hH3aaa"aRa3 z3LN 9 9zg"9~f~<9|9zb8ehNu9 9{g$9f<9|9{bjeNuygyg><(| Qy|Nuygļyg><(| Qy|Nuyb^><(|,P Qy3|Nuye,><(|,P Qy3|Nu9g 9 f3|3#rl3*yf*j,yNvLNuA"|a"|0<.2<Q QNu,ynAX <"<`$<Nz#@C@N:#NuH9f y,ynC <BB&<(<`*<Nt9fZyC <J"<NC y <NR y  Kf #LNu,ynA <"<`$<Nz#P*8;{C8]P HO HO HO IT'S (ALMOST) X-MAS TIME SO HERE'S A LITTLE PRESENT FOR YOU - HCS'4220 TRACKER COLLECTION 100 % 100 % MEANS THAT IT HAS GOT ALL THE SOUND TRACKERS ON THE MARKET INCLUDING SOME NICE SONGS !!! TO GET IN TOUCH WITH A MEMBER OF HCS THEN WRITE TO : HCS (SHADOW) GEDDESOPARKEN 47 4220 KORSOR DENMARK DID YOU GET THAT ??? OR ELSE - READ THE TEXT ONCE MORE !!! MESSAGE TO ALL YOU WHO STILL GREET US AS "HCS" PLEASE REMEMBER TO GREET US AS "HCS'4220" IN THE FUTURE !!! BY THE WAY , THIS DISK WAS COLLECTED BY THE SPIRIT AND NOT BY THE SHADOW AS USUAL !!! ENJOY IT !!! HAPPY CRACKING SERVICE BLAST THEIR MEGA GREETINGS OUT TO THE FOLLOWING GUYZ ( 0 - Z ORDER ) 2000 AD , 4TH DIMENSION , ACU (PIRASOFT) , AMIGA ACTION , AMIGA ICE / THE GOONIES , AMIGA LOVERS , AVIS OF TSK , BAMIGA SECTOR ONE - QUORAM , B.F.B.S. , BRAINBUG , BROS , CASCADE FRANCE , CRIONICS , C.S.I , DOMINATORS , ESA , EXPERT SYSTEM , FREE ACCESS , FUNX CRACK BAND , FUTURE , GCI , HAGAR / THE CONNECTION , HELLRAISER / THE BAND , HIGHSPEED , HORIZON , HTG , ITALIAN BAD BOYS , JEWELS , KERMIE , LAWBREAKERS , MEGAFORCE , NORTH STAR , PHENOMENA , PLASMAFORCE , RAGE & DNS , RAWHEAD , RED SECTOR INC. , ROADRUNNERS , SCT , SOFTRUNNER CREW , SPECTRE INC. , STACK , SUNRIDERS , TEAM X , TETRAGON , THE ALLIANCE , THE AMIGA GANG , THE BOOT BOYS , THE BOS TEAM , THE BOUNTY HUNTERS , THE JOCKEY , THE NEW MASTERS , THE QUACKERS , THE TWILIGHT ZONE / FBI INC. , THORAX , THRUST , TRILOGY & 7'UP CREW , VORTEX 42 , WEST COAST BOYS , WILDBLOOD , ZEKEWOLF / AFL , ZIGAG  SOUNDTRACK 1.2. .SOUNDTRACK 2.0SOUNDTRACK 3.0. .SOUNDTRACK 3.1SOUNDTRACK 4.0. .SOUNDTRACK 4.1SOUNDTRACK 6.0. ..AFL TRACK 1.0SOUNDTRACK 1.8. .SOUNDTRACK 9.0TNM TRACK 1.0.. ..DOC TRACK 2.0PRESET-ED...... ....INSTRUCTION )8pp"   " w  /iP&d Dj?jDk?kDl?lDm?mDn?nDo?oDp?pDq?qDr?rDs?sD\)\@?&  "\)\)\PO\)graphics.library L! #2 .1 ` ?G`661`6618`661p`661`661`661p`6617`661`660`660`660`66?`66?F`660p66/86?р6?160186/1p61631`601?`670`670`660`660`661F`661 `661`661p`6618`661`661`6618`661p_?fd D~@000?A03??A0??3~;??m~$6Jb03Lf 6 |  `0!!$p5`p@+ xl>?1X 0+CXn`4lVC|%dP:U@S9Y?=dH3@V@cP=0H,ء7<>S08P=`23F ;X>, 1D"ȴCaA?N8Á1| `@aH"Ю9t"d0p4% aO? !` C1>:p)8 4AY`*SlaܦxIO2| lR@ari! ܤpg? sWu4+/"`9BPG9#`B9t\  8 B,Hp$4qx@xqPw>xw,m0^9w`X#,%M8(Ͷ(0H`PD)a!`!H7?8w1Yv*(1 h$"",I' 4 0C@ 3$d"x  ȍ!o :3axA`I > AO'%Aǜca3Gqpc@>`A@a'&s4nPܳtxqbe MKș`h?GBfI3_wz瑀0) \/)P .+!J@0(  `3|,> g59$M#$ϟ3~5I! f3L|H~x0qC3>y9>:@p7x4d9XC`-@!B@x3ҢC`0`D~E??$?'"C@x8 e? /"C??%d2@y3C@ɦ8Ly(wx|,( 1[b1hpy H&" H>`)x @0!1+A0#xxxg0 82Dy2 !DdFJJ'! ǁL?>@?E/'@9O$&sC@,, ub  {ABؠgVwDEG^|hPAv( bt(q@jT{A:q@`s9@ ⁿf. cAe+9>xx܋<@~]j_P0r 8xgoap\?{A@(9>3>*>sc QW1WUW0rc~ (3!U+%\͍X@ LAPlf G<ȏʹS@Zcbr#R@qZ PP5P(G#盘zkv*bPP;$DvP~]uh J5MpJ`%̂PA*UsEf毬U~? @u[*3:3%|Fg|dġp NaȐ}+|~uCx wPPnA7]ÊjerHe/ݽ9?> s %I~ &JoL9@0x @0!1+A0#xxxg0 82Dy2 !DdFJJ'! ǁL?>@?E/'@9O$&sC@,, ub  {ABؠgVwDEG^|hPAv( bt(q@jT{A:q@`s9@ ⁿ92 $B&i@Qf@y 0lHH֙AVf"$bRt2r v6 LdB4D&TF(@ `P0pHHN.**Np.%x ⼶릭2p21302` /ڧˣhhhhhK!+jj.1 )!+jj.1 )-!+jj. )!-zl>6F6&6f66V x ⼶릭C;#;;3; ;+;<^[TVtxF&fV6v0x ⼶릭2r2q2s2prqsppC_O]5hCFC&CfCCVC6CvCCN(x ⼶C8,ڧ3333ssX- &j#3&L&&,&&l&&&&&F&Q0>+ L̦,lFƦ0>1111qq#L   (( @<, jA#Ȑ虁,R! @D (P0;8\" @F) ?;7Q? <??(!?2Ha # @@H' @W@@G\ @vzFNNsJ p6T<áj\:fZmOZBQYC2U!f.nzUkXA@eYsqCCJ0 S0:ЁA@`݀D$rw u$!Pzj= bۍ,*`+Ƀn1qD dFˋ'K#d7{CC_ HMpBORچF$]쉺}0 (8C&Л{CvQ`y _$,\ jS %Z3`0 5,fdX(B6\2t .^L Y?(`m @PVȾb5K P2 cF\ ښCEX.` 8s,P?gh1JF6A*L p V p(@p5+Bo=8$/'EA&Nt֔DWCЧkZ@"gHFi ҝ!ӹ@JKzp @MMy@w  8@.RL${@(X&J. w%TG5Sptegd E<“C'!$&%UyB 坠oU v2.@`hH@;ItX @ѫv[80+U=04| |ȼ*():x z.9ҙYӀw 0b`@Ai  ZcW'a& Ƹ@ŕ @DP+ihI"t( M-mm`h񆁛n](FNh]|l5jcd2ʂp;m@4`*NŤ)> l(p Cb+0>*^fA Y>YJ s B$TPj)'Va`r܈k W 8:4:sY7Hb5@Q@CłeG0a5p3ٗ{[.Cj@GW"D,\@|`oP†&L!HEs1%;B (aVF$gkcD  .jX 5m,,JX-hȖb{H"Јop@"`Rv?bmmQ\Hւl`H>`R c`6d( o2&a  LF ‰3!<5L:Y t6k 01h f(dL00( S5t/,Tp ,mhljIѥ*Pn< 3t,%8p:&44&+ild)t`1vO1B  ldhzey3CS![zXظ67L d2qԣ 5-_ K7 ʖإ\<`q8Y:p(A{W" (,ᖶ ):`;O"]ұ434Z ! LK c RTK,T$D qJ@$V Qʹ  } 4x;60#04i_?Om5KI,Zm;i_L?uB1[5@ܝ1PI0 X Jn@("{JP3 f -bI䈐! K "* ‹ %P4 b M@LF=DCRA T#hB0f C'V @Y@" @ " `V @,I@, W@ IA@2 @5P&PT`x;H@,D9\@@! Ȃ<&dryK@`-0Gx!8@A$ q @B b|A800pv'E 0M[@a@.>+qPznPvP~PqPy^Pu d7ހ P@epBGi;`\ h`l+d2@rDꆆ BHtML1|H }`pyAHd88f2atDB!P`*+LZx H+!8yd)ErUaơB/ \WU ̄1h8 !)@ 0 S`X` ) *2T *  UQ#0)@hPSŔ vB K3bnfF(.<Xr `2P9gh\$(wu$*00X7- rTMz@ᛡ!L(pG t y(=9r Sr{C#{C'p}yj'@JdDdhml"h D(CF `)VdED݋`\a0P0/" i $~ s Hs!JW`(i~xJ, FH"@0 PhDjDd;!`~ڼ@4`?G@24"h>H$J@ D(bh'a T<&! " 0D`!s8I1AH LT1'~(O銱 ˂QOA`H0 H_<H^X`f7`@5A fZ)Ekx ` x  !,Z[o@ (@5,@04PEz yuC@!IIp vN! |@(S606 <: 0@ 1bkl``i1@ f90)$l6C|rN& ,Ul,L La6x <> I0y&0s.|8|& /8c0`fl k0@k 7+'d숖Mll <[l6U hm@ P\Ƞgl?ahlkfDcf5Y2C(lH 0 İ0>e ?>ah^G֨|&@H:cH &X Ԁ+ONbS#d(a7y4 H NT' a&03"Bt000D ;+902 my@@`00NS&X 5 /!/$PHO:s`l*\ HH BV@P48JY003CY<")@`e @ @Иh "P !8}u Z,@(*rbH  4 @ʁW@X ?Lx@``.0  `& 0t008 cVq/&J FA ` n@ǀmpH17`&pH9h7ct 4 A8 A$ A@$4 A$ f`0! `m0@ #Pqo03#(k`e@7vG|k#@q<. &\^R  @E,HU#A@hYX.9!Yb h%x V%KKAT  ,U`OGeCOCl 92r`0a6Ad1CiI S'0* ?00y,2XFiː#Pmaj`b:`b`+h ƨt)@ Z\ c ^ h[h7 P@MQHd퍀@ަ.:k|4` P ~ $T1 h@@π( "&s3*t^B>rh5 0e %"00@ q7%[ ) i+Æ hŘhQ4*S  = =L(072Ux8$  4hFA8 J €с` pm 2C+p9(7S02B&p> *#xB@J L W<@Q'`pA!DP_H3V d `) AU00 0 *}Z 0` xh8*T@ BA d FBLlAt d+ O&`o%H p&A!209A1 Jϑ`xtT(Me48U@#5"FBRrš69hP*  A  iIr 0'(t@h)'zIp01JK`#<(`6L@p^XP<0_#r"`LjL6ppg ~BC7`H9x7`0L`08i? Ht$ O E(^*gpQ 8>  +&aKt `V(p+-A@ᢀ o`B(T@S@ PRl yT 06#C4pn7*tvH-A!m@@ˁA0A A\%֥ăNR\H3Ha > \ x 8J#WCPH6`($Fh4("`X *I R+G@z LW{g:K#'C'`}BBiPP ` @R%PŠ  ABC%  Q @85Թ8 J D5 ij`3(' $  x  8B e+Bc  RDy6Pq ȈuPpW8j OB$`ŋ` & \!BDĶr0z w?>0H5 pP\, 8@@@ \(p01P'Bpx3" Ђ F E8W&P Pcz q$baFJRBT :A]]h͝\zPlnP6@x@p@6QaE+@_q_1_0 A  aH@ P@ d?H4HjH`!3 +);"02( *892(m%u kQ}-qbZ* <LTx8 F !Ad@"De4 Ȃ @C"ȀD -Ƽpample. Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. Filter: This Soundtracker version allows you to turn the lo-pass filter ------ on/off. Example: G#2 1E01 - T.turns the filter and the power-led off ! --- 0000 E-1 1E00 - Turns the filter and the power-led on ! Warning to all Amiga 1000 owners : Don't make jokes with the power-led because some A500 and A2000 owners will not be happy when they hear your song. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normal speed is 6. Exa/Z(mple: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speed If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using t0he Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Use the function 'SAVE MODULE'. You will find at the 'MODULES'-DIR a file, which contains all muzakdatas and instruments. Load with SEKA the source of the playroutine and enter the size of saved module at the label 'DATA'. Assemble. Now load the saved module to 'DATA'. At the start of your program, call t1gqhe 'START' routine. Please note that the IX version of SoundTracker is not completely downwards compatible with version V1.8. Any old V1.8 song that uses no portamento or arpeggio can be used with IX without any problems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.8. (Example : C#2 2184) If the old V1.8 song uses portamento, you will have to rewrite this a little until it sounds the same as before. The songs supplied on this disk are re-written for IX2z>b. -------------------------------------------------------------------------- If you think the SoundTracker IX is best and DOC is great, then write to: D.O.C (Don't write this line.) PLK 089114 C 2300 KIEL 1 WEST-GERMANY If you have any questions to the police, call Germany : 110 ------------------------------------------------------------------------- ADDITIONAL INFORMATIONS AND HINTS : - THE DIRECTORY FUNCTION WAS CHANGED IN TWO WAYS : 1. You can abort the dir3ectory printing (right mouse button). 2. Longer songnames will be printed and cleared in full length. - SOME INSTRUMENTS HAD BEEN CHANGED AND SOME HAD BEEN REPLACED FOR OTHER INSTRUMENTS (done by K. OBARSKI) - CAUSE OF DISK-SPACE ON SECOND INSTRUMENT DISK UNKNOWN COPIED SOME INSTRUMENTS FROM HIS MUSIC-RIPPS TO IT. THE MAIDEN VERSION CONTAINS 216 INSTRUMENTS AT ALL. THE NEW VERSION CONTAINS 234 (OR 243 ?) INSTRUMENTS !!! - THIS SOUNDTRACKER-VERSION CONTAINS THREE DISKS A46T ALL! (ONE SONG DISK,TWO INSTRUMENT DISKS) - HINT : ALLWAYS SET THE SPEED ON THE UPPERHALF OF THE SCREEN TO '120'. DO NOT CHANGE THE SPEED VALUE, COZ THE ROUTINE WORKS IN THE TIMER-INTERRUPT, AND IF YOU SET ANOTHER SPEED VALUE, THE INTERRUPT WILL SPEED UP OR SLOW DOWN AND THAT'S NOT VERY USEFUL FOR DEMOS/INTROS/GAMES... THE ORIGINAL SPEED IS '120' AND THAT'S ONCE EVERY VERTICAL-BLANK. THE OTHER SPEED VALUE (EFFECT $0F) CAN BE USED AT ANY TIME WITHOUT ANY INFLUEN(%XCE TO ANY INTERRUPT. - HINT : DO NOT PRESS RESET WHILE COMPOSING - OTHERWISE THE MUZAKDATAS ARE LOST (HAHA) - HINT : CONTACT D.O.C !! (But not, if 'ya are a LOOOOOOOOOSER !!!!?) - ATTENTION : I (DR.MABUSE) just noticed that the our intro sometimes (only on the A-500) hangs up... A-1000 users will have no problems... Have joy, have fun, have seasons in the sun... ---------------------------------------------------------------------------- ERSION CONTAINS THREE DISKS A6u!Q! 0P`9iL!]\@!@˦h `b(6bh/҃h @X(3C@Ł[D3J03P *03 G dHn@€BL#k$ %Mf5`a8eH8Wp f ǠM860?|فf%j6 (!M A%@0G4ց@!T  =  H # ,00@ `0@ `ŀD  `YC`075   =  0 g x¼ ʪA~  @hP 3 @A88 xAH 06 p9y(& !eE CBE# ]Ch²³Qb P"@! bx 7 - Sets the volume from voice 1 to zero. !! ---> 4 - Sets the volume from voice 2 to zero. !! ---> 1 - Sets the volume from voice 3 to zero. !! ---> 0 - Sets the volume from voice 4 to zero. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. All instruments are listed in the preset-list. The v=,olume is allways 64 but you can change it to each value between 0 and 64. To change the other values of each instrument you have to load the preset-editor. With that tool you can change the whole preset-list. Notes. ------ C#1 3 C 2 3 / / | \| / / | Arpeggio,portamento,volume,speed and filter info. / / Command / Inst# Note to be played. Note : This is simply the note >w that must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. C - ?| Set volume. E - Set filter on/off! F - Set speed. Info : This byte contains the additional information for the commands. ---- Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during  @ G the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the  AQKcurrent note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 Slides down 8 --- 0208 Slides down 8  ,M --- 0108 Slides up 8 --- 0210 Slides down 10 etc. Volume : One of the enhancements that the V9.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sCu Example : D#2 3208 --- 0208 --- 0208 --- 0210 etc. Volume : One of the enhancements that the V6.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the defDѴault volume level of that sample. Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. It is also possible to "slide" the volume up or down while playing. E}gC In this case the first nibble of the info byte defines the amount at which the volume must be incremented, and the second nibble the amount at which it must be decremented. Example: D#3 2D20 - Slide volume up, amount = 2 --- 0D20 --- 0D20 etc. C#3 4D03 - Slide volume down, amount = 3 --- 0D03 --- 0D03 etc. This is all very well until you try to slide the volume and use portamentFɰo or arpeggio at the same time. For this reason, SoundTracker VI provides an auto-slide mode. You set the auto-slide mode with command # 14 ($E). Set the amount at which the volume must be slided up or down as normal. Now play your arpeggio or portamento and the volume will be slided as well. You return from auto-slide mode whenever an info byte with a zero value is encountered. Example: E-2 CE02 - Set auto slide, amount = 2GEB --- 0203 - Portamento AND volume slide down. D-2 3203 - Volume to default level of instrument #3, portamento and volume slide down. --- 0203 G-1 1000 - Return from auto-slide. Play note G-1 with etc. instrument # 1. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normH]_al speed is 6. Example: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speed If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It I豙was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Write down which instruments you've used and write down there length. Now enter the Seka-assembler and load the playroutine-source. At the end of the routine, (next to the 'mt_muzakdata' label) is an empty block. Enter the size of the song data. After that you've to enter all sizes of tJؚ$he instruments you've used (at mt_snd1, mt_snd2...). Assemble. Now load the saved song and the samples to their blocks. At the start of your program, call the 'mt_init' routine, and to play the music, call the routine 'mt_music' once every vertical blanking interrupt. The 'Speed' label at the start of the routine, defines the pace at which the notes succeed each-other. ($1f4 is the default value used in SoundTracker.) Please note that, the higher the number, the slower the playroKMutine becomes. Also, the slower it becomes, the longer it takes to complete a pass through the routine. Some samples cannot handle high speeds, so you will have to try this out. As has been told before, the source-file of the routine can directly be incorporated in your demo/intro-source. To minimize the possibility of a 'Double Symbol' error, all labels used in the routine start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note tLD1hat the VI version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with VI without any problems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.21. (Example : C#2 2184) If the old V1.21 song uses portamento, you will have to rewrite this a little until it sounds the same as before. The songs supplied on this disk are re-written for VI. -------------------------------------------------------------------------- If you think the SoundTracker VI is useful and DOC is great, then write to: D.O.C (Don't write this line.) PLK 089114 C 2300 KIEL 1 WEST-GERMANY If you have any questions to the police, call Germany : 110 9i yiu,mnlkjhkjhgkkjg (skywalker's lieblingstext) ---------------------------------------------------------------------------- hen writing your program, do not use any labels that start with 'mt_'. Please note tNwusic-piece. Before you can use a sample as an instrument, some values must be defined. You can do this by either using a preset, or by setting these values your- self. Length : This is simply the length of the used sample in bytes. Volume : This is the default volume of that instrument. Replen : When replen is set to 2, each instrument will be played once. When replen is set to any other value, the instrument will be repeated until an other note is played. Repeat : SoundTOG:gracker can also be programmed to repeat just a part of a sample constantly. This is usefull when playing waveforms. Whenever Repeat is set to a non-zero value, SoundTracker will just play a part of that particular sample. In this case Repeat defines the offset and Replen the length of the part that must be repeated. Notes. ------ C#1 3 C 2 3 / / | \| / / | Arpeggio, portamento, volume and speed info.  P;tH / / Command / Inst# Note to be played. Note : This is simply the note that must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These funct QBions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. 3 - Modulate volume of next higher voice. (possibly with arpeggio) 4 - Modulate period of next higher voice. '' 5 - Modulate period + volume of next higher voice. '' 6 - Modulate volume of next higher voice and portamento up. 7 - Modulate period of next higher voice and portamento up 8 - Modulate period + volume of next higher voice + p Rortamento up. 9 - Modulate volume of next higher voice and portamento down. A - Modulate period of next higher voice and portamento down. B - Modulate period + vol of next higher voice + portamento down. C - Set volume. D - Slide volume. E - Set auto-slide. F - Set speed ! Info : This byte contains the additional information for the commands. ---- Modulation : One voice can be programmed to modulate another. This means that ---------- e S]5ither the volume, period or volume AND period are no longer static values that are set before starting to play a note, but that these are subject to change during play. It can be seen that this provides a way to program viberato and tremolo effects. When a voice is programmed to modulate, it always modulates the next voice. So voice1 modulates voice2, voice2 modulates voice3 and so on. When a  T_voice is told to modulate another, that voice is made silent. When voice4 is told to modulate, it is only made silent, because there are no 'higher' voices than voice4. How does this modulation work ? Well, say you programmed voice1 to modulate only the volume of voice2. The volume of voice2 is no longer defined by the volume of that instrument. Instead, the words in the sample of voice1 define the volume fUU5or voice2. So if the sample of voice1 looked like this : $0030,$0032,$0034 etc., the volume of voice2 would become $30, then $32 and so on. This is used to introduce a viberato to voice2. The period of voice1 defines the speed of this viberato effect. When voice1 was programmed to modulate the period of voice2, the words in the sample of voice1 would define the period of voice2. WVelKmhen a voice is programmed to modulate the volume AND the period of the next voice, the first word in the sample defines the volume, the second the period, the third the volume again and so on. Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selecW,ted. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current noteB . 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes.Y#/|@!7  uP6b(Ñ0` h((@D1@|@!  P?P6bC ",$08$K?pGO0pLPAP( O( 0 tÓ@p`ʼ; Py@(,6{"bvx2&v`@x`; |2@p1hg?a m; "q@@e#@@;LPxaC;Rb|`QE*!@*I"B+!NaA *@)Es%@ZQg ɤ~x-"/SP`I8 ?8n,aP+P  @S'"`(C`4l4 !A0 @S98Kh1hH 318#C `݃A<H2)( 1 <{9@P ?C(X i2c 3<( Qd|P.CO!<}#ɓ&0f@v b(`QNU#t(8 Bs0( ;x J#X(yi  PQ *{$$a>䘔LҐb@!b B1 `€QFCȆ)T@PfP80(c@c;? - 2'ga[CF((р!y<'C3C<^@ F aCv#}Cw` ACwh Fц`(g @c v'aBA1L|p8LP>xqa1;%{ s@T@gPyFX r | @ #dRy>IɟpٜH$Bg ;10 ` Fb?U?5P^ ; P8޿7< ՝b\*궫KURQ:WUWCeVE}FTUT}tgDDl=7 H(#zz/f Qq_}@?0 {+V _ K0? 3\*+Gg} D.wx Z000 <8 WW|U] VF~gDVME}gV|DEOTUC ";mh_(@D0&|@!  Zq "mh((@D1@|@!  P?P6b(  ` A`|0͑. qQ( F< bJoEh`U817 ,gnlPt1qv g"e"f ,@AIbH@ Nr ]& r9@H-2`00! @D&p() 4I bI(PI P(AqBU ]w(V0 14L'@ 7;i9hH BMCۃ@_J hH R~ u|@ld dx8H @4f@ @A֞@0!pp!$k\aБ @"@B=@ ( Zp 4jKp6pv/1o1m1i ;!p0 O_Y\o@Z[\mTlHA6S?~71w1t1 _0\~ h}$h[mZ0mI/AX]lB0ax@$ x9 p$I  A@ ".||!xAbp >LM?A"H`>`uPl0H-! "`ևĄ ?>l>FHYOt(@ /020_!!@( @`E0v>t(o  " D<AE   @ sD"  N@ k 1R~3pHQ:F p<`bp<`cp`bjS(f))s`@3d  &<I']~LxsAlg9@H-2`00! @D&p() 4I bI(PI P(AqBU _̋per line) ----------------------------------------------------- Modifications : Modulation. ------------- Enhanced portamento. Volume changing during play. Volume sliding up/down during play. Standard USA keymap. Playroutine for use in demos etc. Correct (?) spelling. (Karsten, it's spelled "Length" and NOT "Lenght" !!) (PHR....it ain't "Lengh", either !) `IG D.O.C says : Laengs D.O.C also says : Min guellepump is in mors. Modifications by D.O.C : ------------------------ FEATURES : - SPEED CHANGING during play ! - EQUALIZER ! - NEW playroutine ! - NEW Mouse pointer - NEW 3D cursor - VOICE-CONTROL! (press 1-4 on the right numeral pad) - THAT'S ALL! (press nothing) Patterns. --------- Any piece a9of music written with SoundTracker VI is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. The Keys. --------- The original (V1.21) version of the SoundTracker had a German keymap. Version VI supports a standard USA keymap (oder auch nicht) ab#\nd this ensures compatibility with nearly all Amigas. The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. ------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor M11to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursor. shift + F3 - Cut selected voice of actual pattern. shift + F4 - Copy selected voice of actual pattern into copy-puffer. shift + F5 - Copy copy-puffer to selected voice of actual pattern. Instruments. ------------ You can use up to fifteen different instruments in one m dqjİBCLh Q:`c0m,8P5cN)\&4kE,BRLp Ld-0aa dРjNj*@FH7i(X@PpcP0z G2 @C,p>=n02B x,& (EQAT ǂ@!AY 02!T @f`0Mx7a8B0 W0 ]B fP@0lU @BHc0N83 d3 b< 5t 幠)LM lJ*qxZ 0!$]m*g`x L Zj١ OC: (x=<s$Z [ 1 с @`CSK3`"DS"ji@PlT` ZXZA` 7pAbAs.M "@V9$AxgJW07{Bq<Jp7{K#07 l◀kA$h;C ny深s?!X=4122!(-`C08p>`~FmɁ׌;0p~x  񅡗D` Zyš(b!vŰ 8G3pjX$< -,\KP"[.p?dd.K@`7r!8gfcj(SCNxX:)8Llmj0x, iPxm= m PREaHd9,ah\J`WAC%mLi x \<7Z9 Zڻ0 ` Yڛx`@ )gKSw@89 \z1<t` 86 h ݫ݁<.ً $6`A S!`qخ@H t4./A0,8p`xqqxa 0Z= <,X40'Hmx-MM̓Pm@A. h8us6*B!A(wv0 D(w516d5 2252vqrt2  CLm퍬À0hPx ܍ }@](,1NpA"@SA!B>|Dx HpP``p h@"` PP)  I ` ` ``i8@ ` ` `@@@@@@@4Eͤ ` /2 . ,@Q_@ @e@@:@\@X?#5)>*txpGApD2 "2  @C"Ȃ & !Ad@"Dd@q $` 0 ,`0  0 @ @ @@ @@@@ @    ai m@ @ineį|W=tն]NC#cS`|9 ^[TVt} MMd121ymSM[eb2f2a2e78d32310ymSM[ef6a6e5%0001ymSM[ea1e642222_O]5mGՔд|W=jY:Ytն]xHgdgbgfgagegca+jj.|W=tնXNFN&NfNNVN6NvNx ⼶릭hdlbjfnai|W=tb4b2b6b1b5b3b7b046^[TcFc&cfccVc6cvccNcCcX!фɄلńՄ݄̈́Äӄ&x!єɔٔŔՔ͔ݔÔӔ3F3&3f33V363v33N3C3#3c33dsBA@"!#"ac`ZY[X:9;8zyx2130rpRQӓssuPT!H6y0 Bd!137;a(ȝ!eC`T+A??@z(b!gf<^3GxgPE1'FI3>0r 8D` ( R kO0 n@& fȐ9(@T@Bt @K -B\yA| B'47\]P*P>XAN@EC b P $  $iFN@@/ P #RN@ @5D ```````p`p`p`p`p`p`p```````````Ѐ`Ѐ````  aPUˀ}:0``lvИPZ 0]0 0 0 <0 <0 0 @# oP!Ji  _{?p?p?p?pӛWN/ 44@0BUªX`ry P `f i4($ݞH## -*O~ ʪz$Pp"1x(pcCs  D@lBD0w ,, *G$(2@.!fxg(m H 3 I?%rWhP7!|*fh P̭D 1WL @(9z@ nr@n@ @ @ }b2 & A@ @@a A A?`x`0tP0` (d3@0m(\ @`'`0(103 K,@8 A P m  c@p06x7`tpH>7\ub.~Pf .Rc.z.fP.8P> P` `r00@ S03ՠ@ `:0`bJ/jG6rA f*P@!h10`D5Ҕ$},? w (01*yb A8C!9xlE@ KH~  fD A!@s(I=eWXCI h0  H.C]`0@0a"l037!x\]^@3 t R& 䦤,Gy p7 %A6Bhq  P6o8A$pd;0Bv)zp}zPn@Ƃ`pT Ҟ`hY`$h(R#  2pc@ru\ASJc·!,D Bam87HۀF i@ S5 x ^(Am` HXA=A\AjN\ jDA#"҃PPa`5FPePS1E4 @^`hpn @Y ܦ]"P?cxd DTx`i   !p  WV 9(!7F@.Ą  5 d  0Wx@8gCNB@P 2NX5LJB=E(+D_nl (5@} 0! b(\& bA@%; <` :CЀXW, =tfL20 (HcQ,9(G!@0r HAH$ @@Ҋ "f@ 0*D@l !&P  Ђa@0B\DB0b ЀB!:%*H0,!8FZ m p0VAFDw{Յ `g 8d((M! S d  `A`,01 6RP0h0aPt` tt d $Jpv@i@t(2h< Aǐ\34D= n. ` XQI 0À4_߄ $=`\2GP1h=A2Am[\ ^ C  eu.<Xd 67A~0@3(!H/Eh Ăm`a 2h9U 1 8L;$`W`@(2BC,pO3fcK2` ("`f$Юbb(9WB * u@N"A*0 5j"`֠a-B"5Og dKͩ@0P0@ h Y @- g  Kt4`j P.aH0X($"b(GL8SR'(T3 0$ AAH$"D";WL  bK4A:Q jQG nSFA((O@@Q1xr 0+ 1C v 020D 0-4>@p;a^#1s..`06h0 @JY@'sA4J 4k8 $00@ cj/`7rT~`ʁ6P7+F@#@!)t!@h Bkx@1P'h6F @&BB5y,2 `B!`%a*`c&! @ x @ۀ  0\3pqX  -! k@ k XЦ!~\Pc e@ a<<"e@Ay(3hh0ؖ 6P`(fA€V,]20~@&lXB^$Eh CLiЭ"!ऀ1Tcx&6<q@j€@~b4 x'n!R j7p&Ѥ@f~@v oS  Ap0(z *P4 b=xLh@GQgsC*t^Bx]  01"`~ y B BU Pm@!] :PfȀ)F! P r` 01TA?9$@uPuc:Г"ÑzI@p=@P bUaP?8h5 h #M84)"+0"+p2tdgBB oH0@@HI`  0 , 0` `2X0@ ` @*n}U !`Ё@!,*E`@K AyX4 ``@&  9%0J_!D0B @aBR @^JpR"b!(8Тp7RHdӊ0Ԛ ACa)@ʁ 6 0@?G0GT)TR ~A` 2ht ۘc0r $x(Cd`f`;ޮѸ @(@p)"8K  #@@<*҅PnR `ep$X" vSd Xv b'$b*05@394A@@.6 A4XĨ0<職H0vPp70<H00< h 4<D\p6`$E xP˹\@C%u  n *$@BH  CFH6 @P@B  1f@@P0 =-L < <`i0`wF@ ')?Mzrsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bra.s mt_arprout mt_arp4: rts mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq mt_arpegrt cmp.b #3,d0 be{:q mt_arpegrt cmp.b #4,d0 beq mt_arpegrt cmp.b #5,d0 beq mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6),6(a5) rts mt_portdwn: clr.w d0 mo|pve.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loo}Xcp2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: mov~ e.w d2,6(a5) rts mt_rout2: lea mt_muzakdata,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr mt_playit move.l #$dff0b0,a5 lea mt_aud2temp,a6 bsr mt_playit move.l #$dff0c0,a5 lea mt_aud3temp,a6 bsr mt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr mt_playit move.l #mt_speed,d0 mt_rls: dbf ޫ d0,mt_rls move.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voic !_e0: move.l mt_partnote,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w  2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_nosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,mt_dma ).Rcon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 bne.s mt_noset move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper cm _Ũp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #15,d0 beq.s mt_chgspeed cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_chgspeed: move.b 3(a6),d0 and.b #$0f,d0 beq.s mt_nochnge clr.l mt_counter move.b d0,mt_cool+5 rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $000n(40,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$;;ented. Example: D#3 2D20 - Slide volume up, amount = 2 --- 0D20 --- 0D20 etc. C#3 4D03 - Slide volume down, amount = 3 --- 0D03 --- 0D03 etc. This is all very well until you try to slide the volume and use portamento or arpeggio at the same time. For this reason, SoundTracker IV provides an auto-slide mode. You set the auto-slide mode with command # 14 ($E). Set the amount at whi1kch the volume must be slided up or down as normal. Now play your arpeggio or portamento and the volume will be slided as well. You return from auto-slide mode whenever an info byte with a zero value is encountered. Example: E-2 CE02 - Set auto slide, amount = 2 --- 0203 - Portamento AND volume slide down. D-2 3203 - Volume to default level of instrument #3, portamento and volume slide down. --- 0203 G-1 1000 - Return from auto-slide. Play note G-1 with etc. instrument # 1. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normal speed is 6. Example: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speekd If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, s*ave it to disk. Write down which instruments you've used and write down there length. Now enter the Seka-assembler and load the playroutine-source. At the end of the routine, (next to the 'mt_muzakdata' label) is an empty block. Enter the size of the song data. After that you've to enter all sizes of the instruments you've used (at mt_snd1, mt_snd2...). Assemble. Now load the saved song and the samples to their blocks. At the start of your program, call the 'mt_init' routine, and to Hiplay the music, call the routine 'mt_music' once every vertical blanking interrupt. The 'Speed' label at the start of the routine, defines the pace at which the notes succeed each-other. ($1f4 is the default value used in SoundTracker.) Please note that, the higher the number, the slower the playroutine becomes. Also, the slower it becomes, the longer it takes to complete a pass through the routine. Some samples cannot handle high speeds, so you will have to try this out. As has been told before, the source-file of the routine can directly be incorporated in your demo/intro-source. To minimize the possibility of a 'Double Symbol' error, all labels used in the routine start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note that the IV version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with IV without any probl"ems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.21. (Example : C#2 2184) If the old V1.21 song uses portamento, you will have to rewrite this a little until it sounds the same as before. The songs supplied on this disk are re-written for IV. -------------------------------------------------------------------------- If you think the SoundTracker IV is useful and DOC is great, then write to: D.O.C (Don't write this line.) PLK 089114 C 2300 KIU^-EL 1 WEST-GERMANY If you have any questions to the police, call Germany : 110 ---------------------------------------------------------------------------- [0 p ls used in the routine start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note that the IV version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with IV without any probl-6le5 move.l #mt_snd6,mt_sample6 move.l #mt_snd7,mt_sample7 move.l #mt_snd8,mt_sample8 move.l #mt_snd9,mt_sample9 move.l #mt_snda,mt_sample10 move.l #mt_sndb,mt_sample11 move.l #mt_sndc,mt_sample12 move.l #mt_sndd,mt_sample13 move.l #mt_snde,mt_sample14 move.l #mt_sndf,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.w #0,$dff0d8 clr.l mt_partnrplay clr.lyl mt_partnote clr.l mt_partpoint move.b mt_muzakdata+$1d6,mt_maxpart+1 move.b mt_muzakdata+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr.s mt_music movem.l (a7)+,d0-d7/a0-a6 mt_oldirq: jmp $000000 mt_music: addq.l #1,mt_counter mt_cool: cmp.l #6,mt_counter bne.s mt_notsix clr.l mt_counter bra mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 b  st# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. 3 - Modulate volume of next higher voice. (possibly with arpeggio)  D+4 - Modulate period of next higher voice. '' 5 - Modulate period + volume of next higher voice. '' 6 - Modulate volume of next higher voice and portamento up. 7 - Modulate period of next higher voice and portamento up 8 - Modulate period + volume of next higher voice + portamento up. 9 - Modulate volume of next higher voice and portamento down. A - Modulate period of next higher voice and portamento down. B - Modulate period + vol of ne /!xt higher voice + portamento down. C - Set volume. D - Slide volume. E - Set auto-slide. F - Set speed ! Info : This byte contains the additional information for the commands. ---- Modulation : One voice can be programmed to modulate another. This means that ---------- either the volume, period or volume AND period are no longer static values that are set before starting to play a note, but that these are subject to change du ~o+ring play. It can be seen that this provides a way to program viberato and tremolo effects. When a voice is programmed to modulate, it always modulates the next voice. So voice1 modulates voice2, voice2 modulates voice3 and so on. When a voice is told to modulate another, that voice is made silent. When voice4 is told to modulate, it is only made silent, because there are no 'higher' voices tha t n voice4. How does this modulation work ? Well, say you programmed voice1 to modulate only the volume of voice2. The volume of voice2 is no longer defined by the volume of that instrument. Instead, the words in the sample of voice1 define the volume for voice2. So if the sample of voice1 looked like this : $0030,$0032,$0034 etc., the volume of voice2 would become $30, then $32 and so on. This ibfys used to introduce a viberato to voice2. The period of voice1 defines the speed of this viberato effect. When voice1 was programmed to modulate the period of voice2, the words in the sample of voice1 would define the period of voice2. When a voice is programmed to modulate the volume AND the period of the next voice, the first word in the sample defines the volume, the second the period, the  %third the volume again and so on. Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 b5 Bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the secR9Pond nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 --- 0208 --- 0208 --- 0210 etc. Volume : One of the enhancements that the V4.0 version provides is the -t----- ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. It is also possible to "slide" the volume up or down while playing. In this case the first nibble of the info byte defines the amount at which the volume must be incremented, and the second nibble the amount at which it must be decremx^cd򀠏 K Pdy(!( v0Pt |rO'Aht#<. Mg, !1ZXbaH ?va@Ppf  @ 7g &(a7` R`0l1 o  @(W/ }@`sߞϝ΀LΈc@ϲ'R; !vT8c( ( oR(84$!HRO@Dp("P2P(0`4l4 !A0 @S98Kh1hH 318#C `݃A<H%2)( 1 <{9@P ?C(X i2c 3<( Qd|P.CO!<}#ɓ&0f@v b(`QNU#t(8 Bs0( ;x I#P 8&v(r0o2!r0Pc‚@`,d1 (Hc@c@ v~@( Z(d0O(ϒc( |( @!@P"0>G{ n ?WAxPyxy yZa !P*2rCgaPcLER cS(;"S(įgLNhc >{9(y0@ORrg8\0g/$ < L ,:=b@utT/ă@*@( @@CgVX:ʯxR@`ANp'uuU]w$ )[5QUQџ;( &y 꾾*T|UEO} <@€P[*).Pp0?]U?s )j0P0=_]hJϯUUwP( YQY5Y=QWØR? ` P?P6`C "imh  _(@D1h bP?6bC "mh((@D1@|@!1-`h=lR?@ NxDLI urPv! 32f(H0/1 b A E\ xX*bKaDE @ І'H<30!H=@ 2!r0Pc‚@`,d1 (Hc@c@ v~@( Z(d0O(ϒc( |( @!@P"0>G{ n ?WAxPyxy yZa !P*2rCgaPcLE̋yper line) ----------------------------------------------------- Modifications : Modulation. ------------- Enhanced portamento. Volume changing during play. Volume sliding up/down during play. Standard USA keymap. Playroutine for use in demos etc. Correct (?) spelling. (Karsten, it's spelled "Length" and NOT "Lenght" !!) (PHR....it ain't "Lengh", either !)  D.O.C says : Laengs D.O.C also says : Min guellepump is in mors. Modifications by D.O.C : ------------------------ FEATURES : - SPEED CHANGING during play ! - EQUALIZER ! - NEW playroutine ! Patterns. --------- Any piece of music written with SoundTracker IV is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you2# determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. The Keys. --------- The original (V1.21) version of the SoundTracker had a German keymap. Version IV supports a standard USA keymap (oder auch nicht) and this ensures compatibility with nearly all Amigas. The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one H~octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. ------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursorS. shift + F3 - Cut selected voice of actual pattern. shift + F4 - Copy selected voice of actual pattern into copy-puffer. shift + F5 - Copy copy-puffer to selected voice of actual pattern. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. Before you can use a sample as an instrument, some values must be defined. You can do this by either using a preset, or by setting these values your- self. Length : This i7s simply the length of the used sample in bytes. Volume : This is the default volume of that instrument. Replen : When replen is set to 2, each instrument will be played once. When replen is set to any other value, the instrument will be repeated until an other note is played. Repeat : SoundTracker can also be programmed to repeat just a part of a sample constantly. This is usefull when playing waveforms. Whenever Repeat is set to a non-zero value, SoundTracker wil&l just play a part of that particular sample. In this case Repeat defines the offset and Replen the length of the part that must be repeated. Notes. ------ C#1 3 C 2 3 / / | \| / / | Arpeggio, portamento, volume and speed info. / / Command / Inst# Note to be played. Note : This is simply the note that must be played by that particular ---- instrument. In W"j00@ q g  i+ÆhŘhQ4*S   =L! @ ` P!@hT "@5(*8 jVaPezmxHR21ń%1(3*|P6(RX9(2C+!F&@d* X" Ц 4"P @@ xr*hR i|,s`"qpT60E4,x ؃ @ P@@4W!"(p`D t@oEtH`HTȰ  `"Px4$U T(Z$aC@ܫ8C38821rµ{g:K#'C'O x}`@44C!66.A82pFB8b!!Pp;ph x n 8I  ̸4+!Gx h p4cje` g:` s 0mh4C p7΃1o3t%2!G6Φ'9hPxy 4CP(l1ý 8-k@ 2\d ӽ) !R@ӫ<kS'!<C[WbAL;Sc/,!,a`CXgC0"A$AC`k0;`oB< 3Pn,x<t`6'<81t!s6F,0jd<[ :;A#BirEX;<Ň `!`x!‰A !f B'>`ex Wi `!W(wd!Q-  ѓ<. 3A` O;"rv!h5< ũr (0u4.vHD9h<.$x0<nƦ&x0 FFN.Nv@ `/xp j@#˲  ?8,#A瀔Uf6':  13@IL000    S@c"fWPoa PP ( ` `/2 . ,@ @@@:@<@8@?# dh"AD !dAQ AȂ ȀD2  @C"2L 8` 0 `0 āi  `` @   @  ``@@ @@`@`@`046472W+jj.'!1 )>-zl>Fƌ& ⼶릭13022H ⼶릭302YXY ⼶릭RYXYXX/ڧˣhZHcdcbcfcaceb+jj.$3333_O]5mG```````c+jj,C'#''3' '+'';'<^[TVd4d2d6d1d5d3d7d04⇀+jD1111qqC-xC1111111111?hdlbjfnaihbdbohdlbjfnaihjdjljhySC9́! `Q0pIH ML-,ml]\=<YX98)(iɈ9:X*  Fb< PxXP^!2 @AadNϐ_*X @=a1B3u/ c #< ("#$Y9"0PT)@R`7 $E@* @ 0KE  A.Op/ p 8EPe`A :* s Y@(XL@@.  ADHd9E@p* PP@ @5D ```````p`p`p`p`p`p`p```````````Ѐ`Ѐ````  aPUˀ}:0``ИPZ 0]0 0 0 <0 <0 0 @# oP!Ji  _{?pRL?p?p?pӛWN/4 4@0/  X ;T PРPS Wvy"< p`gT@0?(_*  C0hO@:xRA(X\0e ¡G)@#1A@ 4 XH n y  @ P @66f%X `: @ᖠ0, W@b @lH8Bx|Ch@Pjb@*H 1Idh@1X  +QÌ@ H ryq  I4q̡ 9CiTf` B6@s>!X92`A̘4Cs2!h9"Ȉ`c5I4 `bLHP0eL0RAn @ `a<J1ذB3I $ C(~? !Ѓ1 0n[U܀v bc#@c8Hv?؀P1؍`P±@ #p C @LP `Chf(̀A0ãT v9Ȉ`yP` S v1Xy1wb  #((-,F@! c^GOhW77buW0uuWw0p`prw0`jq/APx``?` @ ~ /jA@ ;820``cBxp0 Ưɉ?H 6LLN"yA@v5scV7pS:9%rWhP7!|*fh P̭D 1WL @(9z@ nr@n@ @ @ }b2 & A@ @@a A A?`x`0tP0` (d3@0m(\ @`'`0(103 K,@8 A P m  c@p06x7`tpH>7\ub.~Pf .Rc.z.fP.8P> P` `r00@ S03ՠ@ `:0`bJ/jG6Aϱ f*P@!h10`D5Ҕ$},? w (01*yb A8C!9xlE@ KH~  fD A!@s(I=eWXCI h0  H.C]`0@0a"l037!x\]^@3 t R& 䦤,Gy p7 %A6Bhq  P6o8A$pd;0Bv)zp}zPn@Ƃ`pT Ҟ`hY`$h(R#  2pc@ru\ASJc·!,D Bam87HۀF i@ S5 x ^(Am` HXA=A\AjN\ jDA#"҃PPa`5FPePS1E4 @^`hpn @Y ܦ]"P?cxd DTx`i   !p  WV 9(!7F@.Ą  5 d  0Wx@8gCNB@P 2NX5LJB=E(+D_nl (5@} 0! b(\& bA@%; <` :CЀXW, =L20 (HcQ,9(G!@0r HAH$ @@Ҋ "f@ 0*D@l !&P  Ђa@0B\DB0b ЀB!:%*H0,!8FZ m p0VAFDw{Յ `g 8d((M! S d  `A`,01 6RP0h0aPt` tt d $Jpv@i@t(2h< Aǐ\34D= n. ` XPT H*p  g 88A+A $@ h\%@y xR.(* $uqU0 A@߀u@Az(@0Xf$Eh hm`- E po(4 P` F 0 0@.cJ@B`| 0 XoAA@G0&s!@v9ʺh T Kq U`L$Q6 j $&"~C? K"\<@=5mO @@  ``8hT<>6@TxZX#P(H% u A6BA!3D<Dgœ>A@٘$@aD!$H  F !ڼ`4p)Xs^aД𪎰`@T`@<rj5 @B"P!X װA !ir) Dt1qvC@X(JP @ra;@ T *@qy"͇2aAP0H@^ Pյb84"`Äy(`\5.#| @L Op H0Hd y 04 oH*P #e@?pS ` t` ʹ "xa=!!J&9`: 0 :!f#NK@@P @Ҭ.NxDܪ؂W,.p68&L ,(ǁzåoA!S*OaB̹Gy/ @†y!@ V D9/l Q* aq6d?c @hM`x=jd- hB@^"%C`@, 0{@ t 3x!p n o+dED0 h0 d0Z/˜0 p@0 $ 'L/1[e f`P- P C0 38P}je` >F!x60@ a KRd i2pZD<5@ފo}(Q8PL@Ɛ4-4_D F4H .؀D aBCH1 boY ݂AeC  \"(j,hrB@ .hV0P(Xi m  10(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,mt_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 beq.s mt_zx1 cmp.b #15,d0 bne.s mt_noset move.w 2(a6),d0 and.l #$f - ,d0 move.l d0,mt_tempo rts mt_zx1: move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_modvol: move.w 20(a6),d0 bra.s mt_puRsh mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.wBHxA $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_tempo: dc.l 6 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sa3mple15: dc.l 0 mt_maxpart: dc.w $0000 mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$616e,$6400,$0000 mt_arpeggio: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 mt_sampleinfo: blk.b 0,0 s1: blk.b 0,0 s2: blk.b 0,0 s3: blk.b 0,0 s4: blk.b 0,0 s5: blk.b 0,0 s6: blk.b 0,0 s7: blk.b 0,0 s8: blk.b 0,0 s9: blk.b 0,0 sa: blk.b 0,0 sb: blk.b 0,0 sc: 8=u*blk.b 0,0 sd: blk.b 0,0 se: blk.b 0,0 sf: blk.b 0,0  mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$ Êr_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 bne.s mt_noset move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper { cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #15,d0 beq.s mt_chgspeed cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_chgspeed: move.b 3(a6),d0 and.b #$0f,d0 beq.s mt_nochnge clr.l mt_counter move.b d0,mt_cool+5 rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $4#0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_partpoint: dc.l 0 mt_samples: dc.w $000GD0,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000 mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w =<| unknown Archimedes!?! Or if you want some informations about our Cracker Journal, then write to: AFL Redaktion 'Cracker Journal' PLK 043347 B or 043366 B 4000 Duesseldorf 1 West Germany [0 p rt with 'mt_'. Please note that the V4.0 version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with V4.0 without any problems. If arpeggio is used, simply remove the 1 that se yt_partpoint move.b mt_sampleinfo+$1d6,mt_maxpart+1 move.b mt_sampleinfo+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr mt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 mt_oldirq: dc.l 0 mt_music: addq.l #1,mt_counter move.l mt_tempo,d0 cmp.l mt_counter,d0 bne.s mt_notsix clr.l mt_counter bra.L mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arpK5x2 move.l #$dff0b0,a5 bsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bsr.s mt_arprout mt_arp4: bra.L mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr.L mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr.L mt_pushvol2 mt_noslide: move.b 2(a6),d0 anʑ>bd.b #$0f,d0 tst.b d0 beq.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6˿Z) mt_ok1: move.w 22(a6),6(a5) rts mt_portdwn: clr.w d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a̲Yd6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0͚P,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_sampleinfo,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr.L mt_playit move.l #$dff0b0,a5 lea mt_aud2temp,a6 bsr.L mt_playit move.l #$dff0c0,a5 lea  "Vmt_aud3temp,a6 bsr.L mt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr.L mt_playit move.l #mt_speed,d0 mt_rls: dbf d0,mt_rls move.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6)  ,$dff0b0 move.w #1,$dff0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voice0: lea mt_modulate,a0 move.l mt_partnote,d0 lsl.b #7,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 c 17lr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_nosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,?ple6 move.l #s7,mt_sample7 move.l #s8,mt_sample8 move.l #s9,mt_sample9 move.l #sa,mt_sample10 move.l #sb,mt_sample11 move.l #sc,mt_sample12 move.l #sd,mt_sample13 move.l #se,mt_sample14 move.l #sf,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.w #0,$dff0d8 eor.w #$c000,mt_voice0+12 clr.l mt_partnrplay clr.l mt_partnote clr.l m`ved. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 5 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 --- 0208 --- 0208 --- 0210 etc. Volum{ e : One of the enhancements that the V4.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example : C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - ՑUse instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. It is also possible to "slide" the volume up or down while playing. In this case the first nibble of the info byte defines the amount at which the volume must be incremented, and the second nibble the amount at which it must be decremented. Example : D#3 2D20 - Slide voַ%*lume up, amount = 2 --- 0D20 --- 0D20 etc. C#3 4D03 - Slide volume down, amount = 3 --- 0D03 --- 0D03 etc. This is all very well until you try to slide the volume and use portamento or arpeggio at the same time. For this reason, SoundTracker V4.0 provides an auto-slide mode. You set the auto-slide mode with command # 14 ($E). Set the amount at which the volume must be slided up or down as normal. Now play your arpeg%!Zgio or portamento and the volume will be slided as well. You return from auto-slide mode whenever an info byte with a zero value is encountered. Example : E-2 CE02 - Set auto slide, amount = 2 --- 0203 - Portamento AND volume slide down. D-2 3203 - Volume to default level of instrument #3, portamento and volume slide down. --- 0203 G-1 1000 - Return from auto-slide. Play note G-1 with etc. instrument # 1. The Playroutine. ------------}C---- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Write down which instruments you have used. Now enter the Seka-assembler and load the playroutine-source. At the end of the routine, (below the 'mt_sampleinfo' label) create an empty b Rlock (with the blk command) of suitable size to hold the song data. Now determine where you want the samples of the instruments to appear in memory. (or create an extra block to hold the sample data.) Put these addresses behind the 'move.l' instruction in lines 35-49. Assemble. Now load the saved song in the created block and the samples to their correct addresses. At the start of your program, call the 'mt_init' routine, and to play the music, call the routine 'mt_music' once every |vertical blanking interrupt. The 'Speed' label at the start of the routine, defines the pace at which the notes succeed each-other. ($1f4 is the default value used in SoundTracker.) Please note that, the higher the number, the slower the playroutine becomes. Also, the slower it becomes, the longer it takes to complete a pass through the routine. Some samples cannot handle high speeds, so you will have to try this out. As has been told before, the source-file of the routine can dkirectly be incorporated in your demo/intro-source. To minimize the possibility of a 'Double Symbol' error, all labels used in the routine start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note that the V4.0 version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with V4.0 without any problems. If arpeggio is used, simply remove the 1 that seT lects the arpeggios in V1.21. (Example : C#2 2184) If the old V1.21 song uses portamento, you will have to rewrite this a little until it sounds the same as before. We sincerely hope that you find this program useful. Instructions written by The Exterminator, and modified by Il Scuro and last a little by Alpha Flight. If you wanna contact the great Alpha Flight, then write to: AFL PLK 043347 B 4000 Duesseldorf 1 West Germany And soon we will swap on the great butݺ,t the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. -------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of patt Sern. DEL - Delete note under cursor. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. Before you can use a sample as an instrument, some values must be defined. You can do this by either using a preset, or by setting these values your- self. Length : This is simply the length of the used sample in bytes. Volume : This is the default volume of that instrument. Replen : When replen is set to 2, each instrument will be played once. When replen is set to any other value, the instrument will be repeated until an other note is played. Repeat : SoundTracker can also be programmed to repeat just a part of a sample constantly. This is usefull when playing waveforms. Whenever Repeat is set to a non-zero value, SoundTracker will just play a part of that particular sample. In this case Repeat defines the offset and Replen the length of the part that must be repeated. Notes. ------ JZ C # 1 3 C 2 3 / / | \| / / | Arpeggio, portamento and volume info. / / Command / Inst# Note to be played. Note : This is simply the note that must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. 3 - Modulate volume of next higher voice. (possibly with arpeggio) 4 - Modulate period of next higher voice. '' 5 - Modulate period + volume of next higher voice. '' 6 - Modulate volume of next higher voice and portamento up. 7 - Modulate per ѭόiod of next higher voice and portamento up 8 - Modulate period + volume of next higher voice + portamento up. 9 - Modulate volume of next higher voice and portamento down. A - Modulate period of next higher voice and portamento down. B - Modulate period + vol of next higher voice + portamento down. C - Set volume. D - Slide volume. E - Set auto-slide. F - Set TEMPO! Info : This byte contains the additional information for the commands. ---- Tempo:  hjӟ : Tempo is usually used to change the speed in which the score ------ is played. You just write the speed in the info byte. You can choose a tempo from 1-15 ($01-$0F). Example : D#2 3f06 - Normal Speed --- 0000 E#3 3f04 - Higher Speed --- 0000 C#3 3f08 - Lower Speed Important: 1) You have to set the tempo at the beginning of every score. Otherwise the score may be played in another speed than you want.   ( 2) A tempo of 0 is equal to a long, long loop! 3) The tempo affect all voices! Modulation : One voice can be programmed to modulate another. This means that ---------- either the volume, period or volume AND period are no longer static values that are set before starting to play a note, but that these are subject to change during play. It can be seen that this provides a way to program viberato and tremolo effects. When a voice is programmed H\ to modulate, it always modulates the next voice. So voice1 modulates voice2, voice2 modulates voice3 and so on. When a voice is told to modulate another, that voice is made silent. When voice4 is told to modulate, it is only made silent, because there are no 'higher' voices than voice4. How does this modulation work ? Well, say you programmed voice1 to modulate only the volume of voice2. The volume of voice2 is no longer defined by the volum e of that instrument. Instead, the words in the sample of voice1 define the volume for voice2. So if the sample of voice1 looked like this : $0030,$0032,$0034 etc., the volume of voice2 would become $30, then $32 and so on. This is used to introduce a viberato to voice2. The period of voice1 defines the speed of this viberato effect. When voice1 was programmed to modulate the period of voice2, the words in the sample of voice1 would ded:fine the period of voice2. When a voice is programmed to modulate the volume AND the period of the next voice, the first word in the sample defines the volume, the second the period, the third the volume again and so on. Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are select{W2шɈوňՈ͈݈ÈӈFymSYYٌٍ99 a`|WІF&fV6vNC#xwSFS&SfSSVS6SvSSNSCS#ScSD{ʘ̘͘XX88 ̌͌L͑&l LBJ@Hdlbjfnaiemckgo`IGKNLEI BP `h 5 H`R` L) @j  "v||mP # xO@aO AO$Hxx|q0q*p*H'   @ (T]@! X,Tb px|Q@$ p x ( + P PHx;X D^DbqM" @@#  *UuPG8R ` C̀0 0 0 ݀0 0 0 8À0 8ˀ0 ˀ0 0 ۀ0 ۀ0 0 ǀ0 xǀ0 π0 0 0 ߀0 0 0 @0 @0 @0 @0 @0 @0 @0 d` _P(  @6\$) Ƅ躂 i PfnPnPaPiPe^Pm0A_}*(,T4@ N P`<I?p?p?pM`hE @AxP (i`"@p\9$BOAH1."a@NS D"\?`p0 bc#@c8Hv?؀P1؍`P±@ #p C @LP `Chf(̀A0ãT v9Ȉ`yP` S v1Xy1wb  #((-v?t1bpaGOE81cFn Ҁq~ί]@ؗy@Ked삐88π́@p`ʼ; Py@(,6{"bvx2&v`@x`; |2@p1hg?a m; "q@@e#@@;LPxaC;Rb|`QE*!@*I"B+!NaA *@)Es%@ ɤ~x-"NAa&03㱺 @ph@P( uL_( M ;8? @@H (e3}1(?= a΀<0S?8t2i   4 ) h8b|0糙H(11Ad2%H0a(I1 B03̀ZALW!?Iq@xy/9<<`P.K` H!`(v葅R? H R)H?'3ðaLDPB1ؠx'@d`qy`<b1ADP80(y 27bQ3JAA~œAp|F; 19Pr7H` 9(d0cPq;!@Ţ P$8pC  3䃰!'20p F^O`A<8 !g*PB0h7 44o7tg2@p9X(,xx D5 `N H0`xF(8eR@@@$KN @ l dZF   @ T_rl,T J& ? 6(9, b$P@; pN(&@t`f0LM, b$(3>HlEf0PP5 m@g!ψD :0v$$0Y` i^P TP`OpP 0E?`BrP)p@@*bP , NA] , 8p3``!@րP)`Q @x( 0  )X?A%_ЄBx¸`-0-a` (W D  ąD( `"`B9 Hj@ F e@U`y30$b`AU 2d5< p 0Ҁ @HE@l ( " l}P)(VA@`'1 2hf 0 #P0܆)8d!!ABid7B!@d @B  F T A`PB1A Jp3 l-@3(El` 8T3 Y"U VC<0:J@@ A@H`B  <:!!G@',0ncqpw((`OzzbAP'#M7< Xx  AZE ~l ̇"[@ *.Ek9}tDVY ëD̈́ @ߌP0, | @1 (@0`;Eh hfv,aEx AA`@`0  a0-ps P .   YX x" >X4+Dq UЀFJl]hJ 7f @$KP`H y!1Y 3j| @- h@@1 Ba4 BA(T`R )   ?x &" *! $@d `0IȀpH` @TuB0{:@+QJ/ 0Lr`@܀ ,  Myp @ 4M&CHĀw@\$8  @PP3 gnjtMH āU:5l9# X7@B`jp'  0@0 f$;I@Ԅ ppb8`O xb@0(?. (@ 0._$hX |@6AV*@<@Q( O@('0 Hh@#dNU~  00 Y Q0A0Uh 5$jp(_(b6ap2wDB$vVg s0rg'Pa`@<3F/x 1R Lê<~`(@0  xF }` vxn@JQ [t!@h Bkx@1P'h6F @&BB5y,2 `B!`%a*`c&! @ x @ۀ  0\3pqX  -! k@ k XЦ!~\Pc e@ a<<"e@Ay(3hh0ؖ 6P`(fA€V,]20~@&lXB^$Eh CLiЭ"!ऀ1Tcx&6<q@j€@~b4 x'n!R j7p&Ѥ@f~@v oS  Ap0(z *P4 b=xLh@GQgsC*t^BBCL (Hh Q:`c0m,8P5cN)\&4kE,BRLp Ld-0aa dРjNj*@FH7i(X@PpcP0z G2 @C,p>=n02B x,& (EQAT ǂ@!AY 02!T @f`0Mx7a8B0 W0 ]B fP@0lU @BHc0ǸSVHP ? h@ى`;Q0S)R I(  @B' :@V] ͝@yց9Y::y P @1wv6"58N83 d3 b< 5t 幠)LM lJ*qxZ 0!$]m*g`x L Zj١ OC: (x=<s$Z [ 1 с @`CSK3`"DS"ji@PlT` ZXZA` 7pAbAs.M "@V9$AxW07{Bq<Jp7{K#07 l◀kA$h;C ny深s?!X=4122!(-`C08p>`~FmɁ׌;0p~xM  񅡗D` Zyš(b!vŰ 8G3pjX$< -,\KP"[.p?dd.K@`7r!8gfcj(SCNxX:)8Llmj0x, iPxm= m PREaHd9,ah\J`WAC%mLi x \<7Z9 Zڻ0 ` Yڛx`@ )gKSw@89 \z1<t` 86 ݁<.ً $6`A S!`qخ@H t4./A0,8p`xqnqxa 0Z= <,X40'Hmx-MM̓Pm@A. h8us6*B!A(wv0 D(w516d5 2252vqrt2  CLm퍬À0hPx ܍ }] '8@Gx  )A`?><808y0d@@Jd5$0q     B6c{g5(ʀtGkS}-q`Z o@o<#AȂ ȀD2  @C"2`DdAD !d@"A`!@I`4 (@y <` 6$$kLL@V +31 ):9;&2!  "*# 0(8$'5^[TVt|8 LM0ymSM[ed4b4f4a4e4@_O]5mGɈɘɄɔ@_O]5mG٘لٔԖ@_O]5mGńŔҐ|W=tն]VSBC#3 +<^[TVt}!-zlqV Chg(4e 0p6fh &҃h   (6dh!҃0>DNX5 R` `e > p4@îƒքFH";ˇ@€` B 8AFqiM%X[%k:5 (!x A%@@BDHh@U !`@BT>s  x 1`R.XV@  BvA00@ `@@6 0(@@ATA 01" Р@ g@ p8p@`m@rP~3$C]-U 7!qQU`A"BjA 0@ᰠ l ((O2 y`a)l` w T`iq 0`M 0 a8LoaoY2 1p! 6P*' 5Q Dk@Ċy@H[H\ HH! A( B !U403@ Jej fq`fd" ~ A+p 3v< dvl `vS Ρa5Z ,@(V*rbH '~sW@X'@!(l @`82X;01@ @@` $\b d P @lH68 H p@ہ$A=$6p(31p(0p(0p(500p01 l` @F`c0!0 _06V{Rv0G84P0ʀ@ ! #fAd@X @P$04#̸3 10e` U*P*X D``uH2 HJ @@ЈLȁ- \H hS@)/pЀ=4f 6F@pt"h300;  a&J*P3hH`tH*5@@`?%5!b8 ȸ@`0! OY, @נ FS(hMDN (|܆A Ã!܁H;9K(6=:=Cv 4 ,E[ ZVD̂l$ABV(Y@   D"A  08P5A D@@>)LDmB@4 5@@@W iȐs$ (  ` A`|0Ӡ`'aS@\8qC 6@"E .w6 a:q2W3Ad xCi1Bl8(Õq +3| f > 8(v(br0o2!r0Pa1f`( vB!EC@H1 p;? - 2'gaC N@d`ƌ *y(0pC<3Uao&0b?@hio'40v@yH$t0ց@of~m ; Pby`!`(0Ȕ!1+ᇇrZ.G4DyDeJ'!@ f0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voice0: lea mt_modulate,a0 move.l mt_partnote,d0 lsl.b #7,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6), ar mt_init move.w #$4000,$dff09a move.l $00006c,mt_oldirq move.l #mt_newirq,$00006c move.w #$c000,$dff09a mt_wait: btst #6,$bfe001 bne.s mt_wait move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq,$00006c move.w #$c000,$dff09a clr.l d0 rts mt_init: move.l #$00000,mt_sample1 move.l #$00000,mt_sample2 move.l #$00000,mt_sample3 move.l #$00000,mt_sample4 move.l #$00000,mt_sample5 move.l #$00000,mt_sample6 move.l #$00000,mt_sample7 move.l #$00000,mt_sample8  move.l #$00000,mt_sample9 move.l #$00000,mt_sample10 move.l #$00000,mt_sample11 move.l #$00000,mt_sample12 move.l #$00000,mt_sample13 move.l #$00000,mt_sample14 move.l #$00000,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.w #0,$dff0d8 eor.w #$c000,mt_voice0+12 clr.l mt_partnrplay clr.l mt_partnote clr.l mt_partpoint move.b mt K_sampleinfo+$1d6,mt_maxpart+1 move.b mt_sampleinfo+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr mt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 mt_oldirq: dc.l 0 mt_music: addq.l #1,mt_counter move.l mt_tempo,d0 cmp.l mt_counter,d0 bne.s mt_notsix clr.l mt_counter bra.L mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 bdiBsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bsr.s mt_arprout mt_arp4: bra.L mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr.L mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr.L mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 be {q.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6)+iN,6(a5) rts mt_portdwn: clr.w d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1  mobeq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_sampleinfo,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr.L mt_playit move.l #$dff0b0,a5 lea mt_aud2temp,a6 bsr.L mt_playit move.l #$dff0c0,a5 lea mt_aud3temp,a6 bsr.L m  Wt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr.L mt_playit move.l #mt_speed,d0 mt_rls: dbf d0,mt_rls move.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dfJۜ2802,B|CkSO1q07 D5v8'n T7ք@ݥqQc*DS`CE̅h 6C0yx m\]E ha/ PQ8<]4 @嗗 ͧD RCbX>(l1ý 8-k@ 2\d ӽ) !R@ӫ<kS'!<C[WbAL;Sc/,!,a`CXgC0"A$AC`k0;`oB< 3Pn,x<t`6'<81t!s6F,0jd<[ :;A#BirEX;<Ň `!`x!‰A !f B'>`ex Wi `!W(wd!Q-  ѓ<. 3A` O;"rv!h5< ũr (0u4.vHD9h<.$x0<nƦ&x0 FFN.Nv@ `/xp j@#˲  ?8,#A瀔Uf6':  13@IL000    S@c"fWPoa PP ( ` `/2 . ,@ @@@:@<@8g@?# dh"AD !dAQ AȂ ȀD2  @C"2L 8` 0 `0 āi  `` @   @  ``@@ @@`@`@`046472W+jj.'!1 )>-zl>Fƌ& ⼶릭13022H ⼶릭302YXY ⼶릭RYXYXX/ڧˣhZHcdcbcfcaceb+jj.$3333_O]5mG```````c+jj,C'#''3' '+'';'<^[TVd4d2d6d1d5d3d7d04⇀+jD11i11qqC-xC1111111111?hdlbjfnaihbdbohdlbjfnaihjdjljhySC9́! `Q0pIH ML-,ml]\=<YX98)(iɈ9:X*  Fb< PxXP^!2 @AadNϐ_*X @=a1B3u/ c #< ("#$Y9"0PT)@R`7 $E@* @ 0KE  A.Op/ p 8EPe`A :* s Y@(XkL@@.  ADHd9E@p* PP@ @5D ```````p`p`p`p`p`p`p```````````Ѐ`Ѐ````  aPUˀ}:0``ИPZ 0]0 0 0 <0 <0 0 @# oP!Ji  _{?p1?p?p?pӛi4 4@0/  X ;T PРPS Wvy"< p`gT@0?(_*  C0hO@:xRA(X\0e ¡G)@#1A@ 4 XH n y  @ P @66f%X `: @ᖠ0, W@b @lH8Bx|Ch@PV+$ @҄ڟ  "?8! d. $(W12hH@x@\!g(  ` B6@s>!X9g2`A̘4Cs2!h9"Ȉ`c FF 8I0"@0K0f}WHrHd4 b]0D>\D<`+G"pcc1& F&& < @$.A8=?kP a#GH * 0swy "b@c"!C@. F P9 !P(Z#?; ! c^GOh/ jBq=@<<83A^ R QB(P(x09 `/}Q0Ow ) @/wsqUtUq"'P4WqvR?8Ʈlj`@uWG6rCy!gR  }q$#OqXXUHP(d, ]C$  <<<`P0<3 ۹#3@Af@?~y@xG{c"؀4^@p70%scU6WPGsu0wwGvuC^ @@9w| (@D1@|@!  NP6aCo "mŠQ#$`@"; ` P?P6bC "mh((@D:XH(`p:Hˁ~P-?>1Ja, K ( P,Pa@@a yO?=A֖8"YqFII(-8?I<> a +K R < s@ÀP (  }@xv &PX2lDL&7d L; <3@Y|v e@b@ϳ( 0@  v(DBG`v<2#ʇ v20-TCUC|&D) VC H1HTR 8(v(br0o2!r0Pa1f`( vB!EC@H1 p;? - 2'gaC N@d`ƌ *y(0pC<3Uao&0b?@hio'40v@yH$t0ց@of~m ; Pby`!`(0Ȕ!1+ᇇrZ.G4DyDeJ'!@L?8P<6E/'( =O$&r` &(n!P2o ]R@@bA/\(p1@eߵuuU߸q7`CeR^ _f׆O`Bh2`hQۻ5<7 H(#zz/f Qq_}@?0 {+V _ K0? 3g} D.wx Z000 <8 WW|U] VF~gDVME}gV|DEOTUC ";mh_(@D0&|@!  Zq "mh((@D1@|@!  P?P6bI[LXMXLML8M8M LL0{M>y))))))))))) ffLff,fflfffffFff&f8aF  8 U`@‹`0 e~YP dReHA,& !l(\ҠybxAt%xaV%D+ fl 08 04 @4 32 0< +2 ưu_$qLF*-GCǡP }Vz@t? z ah1|4 CǡF@Cǡh1}4 > zf@Cǡ @t>Z zh1~ Cǡ6@t> z!h1? z@Cǡ1~t ?: z]1}tGCǡn@t? z=a1| Cǡc0 AC`?1y< z}}@oCߠǡ31x  81z A \1y  ! 0 =h  Æ=8c1 #= R8c1 @=у8ca0ʀd(Yr"`,i9 R e3k 5b<@T,< CuD5ݞHhy$`U@0?,rz$}U@e RT@|:L'"'xu(;x3"f @ <,}s%\#$cL4{GHg80bC0 91$&!0y͙" T!~LXcG%ᖐqeFE =*C'82X:F0"׫L +l1+!b ;#0*OF:$#d@p'X{ =5sC&4#fr' #(`D"%lg93s&f i23&`™s"f qPF Ā`d!2c`%Ă݀ @3>\Ÿ)34O EC⡮N(s_'gJC\cȀy< bqd@?;~S14'&< a^8`@C }3̼ `E2Ow>=GA#qx1vǁNO@+n@S~3y>փx19>o|6@OlÊc."sa K .?w;‡;-x P~~"u8[S?~{C;0~ x>o6co61<3><D<\_H/ pѤxw8h<C4i!4 Gc#b1 )xS"?$>#C4i?H) GO8h< 1FS!4RǔDz!x˅{2-GDJg8%)ahA pVdBk,#M'')١'5(p)5Nz^y'@nx|JnS`(`!^8/xţL)a)NG3c|`Sh#P@+KHPx8:3 VDRyHË@17E vx E;aҴ ~@w%SLBaa vB= ksa ? s%|&B̦sO%g糁sab@0 i)dxi<JxP"xsdTx^̤HVIP$SD[p; LJCwx< s9'HGD G @ AY'@a(l<s0l9"${0Q`  ù!wg?G ,w= 0+P0pPA°gf< j$ <p8 ? =AcIW4&3~F!haxs<) 3Px< C;a' <@Sp= z0Op;x;N<@S$3EdWLj&JM0`S| 炂< ~{9 $r0WPO&_Dz)y  `"Px4$U T(Z$aC@ܫ8C38821rµ{g:K#'C'O x}`@44C!66.A82pFB8b!!Pp;ph x n 8I  ̸4+!Gx h p4cje` g:` s 0mh4C p7΃1o3t%2!G6Φ'9hPxy 4CPcBQ$ j؎yCC 9&g`|& P9Ïa7 CXh!cU 0@]:"a᠓DH!46 օDt=f BM:6Q ,CAxf0V1Ʌ0"LLHNڀ` xpt 'E8Y<N3@`DZ_^/ Ω2E')cədW&Frg %x'Pcwp0"^AǃŁL<<#C,q]8"Le3D0SKd&@p $JG+(IG %VpPQ#a8Ra|(!AxBOpHcl'?!,A_윜HN}1Q1(#4 5! n 3lT֚l\pS  <?/@13M 8mupaI:Pk%$ `>`s|d D u"=9=J l*Y 8 !;TM lDǥF†86h<'BL $C4 }=e@jȈ+[qN&ZM 2Fh(*a EK`! DA`:cs,8吇_(pqBaPbCaIӜfY ~TX@X[  GM,{H1(wɇ!-q!x S:!<i4y~  X F(Agʔr&߉p!A(<<C8  ~g5-Cy(SAO ^iyUcYe ؛6ߣ̡17t@%l4v ŋxl0fvGapZ0}GCCpѿ` %SYx07҃2fyA8d0:j.2(f. Kyd6ġ1ĉݔ| RB A 25 ` x3rGLr <cL 'У 
[6aQ !Px$ɁL/k 67h/n4(Ѣ_ 3? c@$…Ý=&/1A({w],(asƄE#!ۂ/pD(YȔ) /(An1jS .3?NP&H%v1(pT@FJ֝{d?jhH!\ C럁E=kGGAa3@ T"g2ȿx(f xɣFMP_LG pp4<;a@T@̌X 7d 0~d-ShҦ#1%2kd0 3h>O@uϐCA ؂A$ R fA~-KCw8hPBP@␜&D@@1@!PS"ڦPB #-dxP"DPL>sO,(@^P ( 3bMX gA|!.Nva@2 R`0 :`h`})0h;j: 0b{0l - ֱб1=૆9848 A1@R|8x,$ abx3 '5↸\P+ 7oQP"MO7jF)O}sokDž%9 fH:X*fl MI F VdJ0Z" = vX0sj<,EnUSC3 :WGZFP |9Y^66 < ?@xh2 !> QڣS0?#3ֈB{4?8x;2xѝqG(t? 1?:bc0}e#"󨿉cGs4U;Psɩx<&+vM\-̞I_LM mhGW&@GwF1wb#t {42'6M660aO̜ņPZOR6-qyCp˰(OS0Mtv:G#C1z; [,!G\Ltz@x9DOvf<L")ٽp \G m ݝш;3W5 z<:;*4AM,@G'C ioxtƈh^2x MLM 5~_2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_nosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move. 6a w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,mt_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 beq.s mt_zx3 cmp.b #15,d0 bne.s mt_noset move.w 2(a6)7,d0 and.l #15,d0 move.l d0,mt_tempo rts mt_zx3: move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: 8GK rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts *------------------------------------------------------------------ mt_aud1temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$009#K*00,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_tempo: dc.l 6 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sampl:Z)e8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000 mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,$6c69,$6272,$61;2<72,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$616e,$6400,$0000 mt_arpeggio: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 mt_speed = $01f4 instr01: blk.b 326Qo8,0 ;smack instr02: blk.b 8342,0 ;guitar2 instr03: blk.b 5240,0 ;snare4 instr04: blk.b 1510,0 ;bassdrum9 instr05: blk.b 2044,0 ;closedhi instr06: blk.b 3622,0 ;bassynth instr07: blk.b 3898,0 ;guitar1 instr08: blk.b 0,0 ; instr09: blk.b 0,0 ; instr10: blk.b 0,0 ; instr11: blk.b 0,0 ; instr12: blk.b 0,0 ; instr13: blk.b 0,0 ; instr14: blk.b 0,0 ; instr15: blk.b 0,0 ; mt_sampleinfo: blk.b 4696,0 ; *------------------------------------------------------------------ 6e2e,$6c69,$6272,$61)8JiBH#!&@!2J}%{3pNp퉢D" pn`7M߁7{."N wȻ]y.<h.އ}d]z.0E*Paц <@1a!r(C rA(yBRC v;$KBG&34d (#@B&1,<'7!*>` -0"OpgBp9* z !4)^!GSa4m$Zv cG>Cc^!U=]"iA\M#'O*4b"`ȉ|%9JL&­3#F6G``Et<4v CC cy`Mꁁr<da@H99b(PGDL >Vu!&D0" 0DۡAD t*08Qa88\<s LH\,#4g 4*stt<tL;Qb&51BTL4"2 pN  f!BF&`0 @0xpt wX0 xm3;!d Ws̎wX3 (<f=39nj4$`\BDL0H!F"&DMpL,D move.l mt_tempo,d0 cmp.l mt_counter,d0 bne.s mt_notsix clr.l mt_counter bra mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 bsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bs@T_tr.s mt_arprout mt_arp4: bra mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w d0 move.b 25(a6),d0 bsr mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 Kt?in the sample defines the volume, the second the period, the third the volume again and so on. Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info L* byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. M#|Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 --- 0208 --- 0208 --- 0210 etc. Volume : One of the enhancements that the V3.0 version provides is the ------ ability to change the volume at any time during play. When coNmmand 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example : C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note anO?Hd set volume to default value for that instrument. It is also possible to "slide" the volume up or down while playing. In this case the first nibble of the info byte defines the amount at which the volume must be incremented, and the second nibble the amount at which it must be decremented. Example : D#3 2D20 - Slide volume up, amount = 2 --- 0D20 --- 0D20 etc. C#3 4D03 - Slide volume down, amount = 3 --- 0D03 P٢ --- 0D03 etc. This is all very well until you try to slide the volume and use portamento or arpeggio at the same time. For this reason, SoundTracker V3.0 provides an auto-slide mode. You set the auto-slide mode with command # 14 ($E). Set the amount at which the volume must be slided up or down as normal. Now play your arpeggio or portamento and the volume will be slided as well. You return from auto-slide mode whenever an info byte with a zero value is enQVcountered. Example : E-2 CE02 - Set auto slide, amount = 2 --- 0203 - Portamento AND volume slide down. D-2 3203 - Volume to default level of instrument #3, portamento and volume slide down. --- 0203 G-1 1000 - Return from auto-slide. Play note G-1 with etc. instrument # 1. The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the Seka-assembleR;r and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Write down which instruments you have used. Now enter the Seka-assembler and load the playroutine-source. At the end of the routine, (below the 'mt_sampleinfo' label) create an empty block (with the blk command) of suitable size to hold the song data. Now determine where you want the samples of the instruments to appear Smain memory. (or create an extra block to hold the sample data.) Put these addresses behind the 'move.l' instruction in lines 35-49. Assemble. Now load the saved song in the created block and the samples to their correct addresses. At the start of your program, call the 'mt_init' routine, and to play the music, call the routine 'mt_music' once every vertical blanking interrupt. The 'Speed' label at the start of the routine, defines the pace at which the notes succeed each-other. ($1fT@M4 is the default value used in SoundTracker.) Please note that, the higher the number, the slower the playroutine becomes. Also, the slower it becomes, the longer it takes to complete a pass through the routine. Some samples cannot handle high speeds, so you will have to try this out. As has been told before, the source-file of the routine can directly be incorporated in your demo/intro-source. To minimize the possibility of a 'Double Symbol' error, all labels used in the routine ?start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note that the V3.0 version of SoundTracker is not completely downwards compatible with version V1.21. Any old V1.0 song that uses no portamento or arpeggio can be used with V3.0 without any problems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.21. (Example : C#2 2184) If the old V1.21 song uses portamento, you will have to rewrite this a little until it Vd#'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. The Keys. --------- The original (V1.21) version of the SoundTracker had a German keymap. Version V3.0 supports a standard USA keymap and this ensures compatibility with nearly all Amigas. The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus iWncrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. -------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursor. Instruments. ------------ You can use up to fifteen different instruments in oneXX$ music-piece. Before you can use a sample as an instrument, some values must be defined. You can do this by either using a preset, or by setting these values your- self. Length : This is simply the length of the used sample in bytes. Volume : This is the default volume of that instrument. Replen : When replen is set to 2, each instrument will be played once. When replen is set to any other value, the instrument will be repeated until an other note is played. Repeat : SoundTraYTcker can also be programmed to repeat just a part of a sample constantly. This is usefull when playing waveforms. Whenever Repeat is set to a non-zero value, SoundTracker will just play a part of that particular sample. In this case Repeat defines the offset and Replen the length of the part that must be repeated. Notes. ------ C # 1 3 C 2 3 / / | \| / / | Arpeggio, portamento and volume info. / / CZ(ommand / Inst# Note to be played. Note : This is simply the note that must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follo["/ws : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. 3 - Modulate volume of next higher voice. (possibly with arpeggio) 4 - Modulate period of next higher voice. '' 5 - Modulate period + volume of next higher voice. '' 6 - Modulate volume of next higher voice and portamento up. 7 - Modulate period of next higher voice and portamento up 8 - Modulate period + volume of next higher voice + portamento up. 9 - Modulate volume of \Ҋ next higher voice and portamento down. A - Modulate period of next higher voice and portamento down. B - Modulate period + vol of next higher voice + portamento down. C - Set volume. D - Slide volume. E - Set auto-slide. F - Set TEMPO! Info : This byte contains the additional information for the commands. ---- Tempo: : Tempo is usually used to change the speed in which the score ------ is played. You just write the speed in the info byte. You ca ]9Dn choose a tempo from 1-15 ($01-$0F). Example : D#2 3f06 - Normal Speed --- 0000 E#3 3f04 - Higher Speed --- 0000 C#3 3f08 - Lower Speed Important: 1) You have to set the tempo at the beginning of every score. Otherwise the score may be played in another speed than you want. 2) A tempo of 0 is equal to a long, long loop! 3) The tempo affect all voices! Modulation : One voice can be programmed to modu ^*late another. This means that ---------- either the volume, period or volume AND period are no longer static values that are set before starting to play a note, but that these are subject to change during play. It can be seen that this provides a way to program viberato and tremolo effects. When a voice is programmed to modulate, it always modulates the next voice. So voice1 modulates voice2, voice2 modulates voice3 and so on. When a voice  _iis told to modulate another, that voice is made silent. When voice4 is told to modulate, it is only made silent, because there are no 'higher' voices than voice4. How does this modulation work ? Well, say you programmed voice1 to modulate only the volume of voice2. The volume of voice2 is no longer defined by the volume of that instrument. Instead, the words in the sample of voice1 define the volume for voice2. So if the sample of voice1 look J[Qed like this : $0030,$0032,$0034 etc., the volume of voice2 would become $30, then $32 and so on. This is used to introduce a viberato to voice2. The period of voice1 defines the speed of this viberato effect. When voice1 was programmed to modulate the period of voice2, the words in the sample of voice1 would define the period of voice2. When a voice is programmed to modulate the volume AND the period of the next voice, the first word a?flr.l d1 move.w 16(a6),d1 lea mt_arpeggio,a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_sampleinfo,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 clr.l d1 move.b (a2,d0),d1 mulu #$0400,d1 add.l mt_partnote,d1 move.l d1,mt_partpoint clr.w mt_dmacon move.l #$dff0a0,a5 lea mt_aud1temp,a6 bsr.L mt_playit move.l #$dff0b bX0,a5 lea mt_aud2temp,a6 bsr.L mt_playit move.l #$dff0c0,a5 lea mt_aud3temp,a6 bsr.L mt_playit move.l #$dff0d0,a5 lea mt_aud4temp,a6 bsr.L mt_playit move.l #mt_speed,d0 mt_rls: dbf d0,mt_rls move.l #$8000,d0 add.w mt_dmacon,d0 move.w d0,$dff096 move.l #mt_aud4temp,a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: move.l #mt_aud3temp,a6 cmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: move c.l #mt_aud2temp,a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 mt_voice1: move.l #mt_aud1temp,a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voice0: lea mt_modulate,a0 move.l mt_partnote,d0 lsl.b #7,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop clr.l mt_partnote addq.l #1,mt_partnrplay clr.l d0 move.w mt_maxpart,d0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partn docrplay mt_stop: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange clr.l d3 lea mt_samples,a1 move.l d2,d4 mulu #4,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 beq.s mt_displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s mt_n eosamplechange mt_displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) mt_nosamplechange: tst.w (a6) beq.s mt_retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,mt_dmacon mt_retrout: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 move.w d0,$dff09e tst.w (a6) beq.s mt_nonewper move.w (a6),22(a6) mt_nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #14,d0 fv bne.s mt_noset move.w 2(a6),24(a6) rts mt_noset: tst.b 3(a6) bne.s mt_noclr clr.w 24(a6) mt_noclr: cmp.b #3,d0 beq.s mt_modvol cmp.b #6,d0 beq.s mt_modvol cmp.b #9,d0 beq.s mt_modvol cmp.b #4,d0 beq.s mt_modper cmp.b #7,d0 beq.s mt_modper cmp.b #10,d0 beq.s mt_modper cmp.b #5,d0 beq.s mt_modvolper cmp.b #8,d0 beq.s mt_modvolper cmp.b #11,d0 beq.s mt_modvolper cmp.b #12,d0 bne.s mt_nochnge move.b 3(a6),8(a5) mt_nochnge: rts mt_modvol: move.w 20(a6),d0 bra.s mt_push mt_modper: move.gkI3w 20(a6),d0 lsl.w #4,d0 bra.s mt_push mt_modvolper: move.w 20(a6),d0 lsl.w #4,d0 add.w 20(a6),d0 mt_push: add.w #$8000,d0 move.w d0,$dff09e rts mt_aud1temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0001,$0000,$0000 mt_aud2temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0002,$0000,$0000 mt_aud3temp: dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0004,$0000,$0000 mt_aud4temp: dc.w $0000,$0000,$0000,$h}n0000,$0000,$0000,$0000,$0000 dc.w $0000,$0000,$0008,$0000,$0000 mt_partnote: dc.l 0 mt_partnrplay: dc.l 0 mt_counter: dc.l 0 mt_partpoint: dc.l 0 mt_samples: dc.w $0000,$0000 mt_sample1: dc.l 0 mt_sample2: dc.l 0 mt_sample3: dc.l 0 mt_sample4: dc.l 0 mt_sample5: dc.l 0 mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000iYB mt_kn1: dc.w $0000 mt_dmacon: dc.w $0000 mt_modulate: dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475 dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c dc.w $6520,$436f,$6d6d,$616e,$6400,$0000 mt_arpeggio: dc.w $o+0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 mt_sampleinfo: mt_sample6: dc.l 0 mt_sample7: dc.l 0 mt_sample8: dc.l 0 mt_sample9: dc.l 0 mt_sample10: dc.l 0 mt_sample11: dc.l 0 mt_sample12: dc.l 0 mt_sample13: dc.l 0 mt_sample14: dc.l 0 mt_sample15: dc.l 0 mt_maxpart: dc.w $0000Uh zo. Volume changing during play. Volume sliding up/down during play. Standard USA keymap. Playroutine for use in demos etc. Correct (?) spelling. (Karsten, it's spelled "Length" and NOT "Lenght" !!) Patterns. --------- Any piece of music written with SoundTracker V3.0 is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With lmeS{=w߿<BYsf/v9?xfPHd;H("h3c( H`5*d2DH1h~N?8CáX@c>7ۭ8w@c>8mgk s&03 sr23<ń0a>{`( fuPۡ{X: *P=~߸)ARn`~a[8`gq9)C < g䂕@Ǧh0caX <30#* @@) _(|AټR Z ^Gl)F; 0t@ <`P`<,lPl0cc  @P$h9(1h`Q`怨1ȌID (oᄄ0ɀ@@1 KE'&|frA p)) Ʌ(? P ?5'~C5LH% fypL<x0@@) _(|AټR Z ^Gl)F; 0t@ <`P`<,lPl0cc  @P$h9(1h`Q`怨1ȌID (qe4 move.l #$00000,mt_sample5 move.l #$00000,mt_sample6 move.l #$00000,mt_sample7 move.l #$00000,mt_sample8 move.l #$00000,mt_sample9 move.l #$00000,mt_sample10 move.l #$00000,mt_sample11 move.l #$00000,mt_sample12 move.l #$00000,mt_sample13 move.l #$00000,mt_sample14 move.l #$00000,mt_sample15 move.l #mt_sample1,a0 clr.l d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq #4,d0 cmp.l #$3c,d0 bne.s mt_clear move.w #0,$dff0a8 move.w #0,$dff0b8 move.w #0,$dff0c8 move.wr #0,$dff0d8 eor.w #$c000,mt_voice0+12 clr.l mt_partnrplay clr.l mt_partnote clr.l mt_partpoint move.b mt_sampleinfo+$1d6,mt_maxpart+1 move.b mt_sampleinfo+$1d7,mt_kn1+1 rts mt_newirq: movem.l d0-d7/a0-a6,-(a7) bsr mt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 mt_oldirq: dc.l 0 mt_music: addq.l #1,mt_counter cmp.l #6,mt_counter bne.s mt_notsix clr.l mt_counter bra.L mt_rout2 mt_notsix: lea mt_aud1temp,a6 tst.b 3(a6) beq.s mt_arp1 move.l #$dff0a0,a5 bsr.s s; mt_arprout mt_arp1: lea mt_aud2temp,a6 tst.b 3(a6) beq.s mt_arp2 move.l #$dff0b0,a5 bsr.s mt_arprout mt_arp2: lea mt_aud3temp,a6 tst.b 3(a6) beq.s mt_arp3 move.l #$dff0c0,a5 bsr.s mt_arprout mt_arp3: lea mt_aud4temp,a6 tst.b 3(a6) beq.s mt_arp4 move.l #$dff0d0,a5 bsr.s mt_arprout mt_arp4: bra.L mt_stop mt_arprout: tst.w 24(a6) beq.s mt_noslide clr.w d0 move.b 25(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn2 bsr.L mt_pushvol1 bra.s mt_noslide mt_voldwn2: clr.w dthB0 move.b 25(a6),d0 bsr.L mt_pushvol2 mt_noslide: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq.L mt_arpegrt cmp.b #3,d0 beq.L mt_arpegrt cmp.b #4,d0 beq.L mt_arpegrt cmp.b #5,d0 beq.L mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #6,d0 beq.s mt_portup cmp.b #7,d0 beq.s mt_portup cmp.b #8,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn cmp.b #9,d0 beq.s mt_portdwn cmp.b #10,d0 beq.s mt_portdwn cmp.b #11,d0 beq.s mt_portdwn cmp.b #13,d0 beq.s mt_volup rts mt_portup: clr.w d0 move.b 3(a6)uP>,d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6),6(a5) rts mt_portdwn: clr.w d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_volup: clr.w d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s mt_voldwn mt_pushvol1: add.w d0,$12(a6) cmp.w #$40,$12(a6) bmi.s mt_ok3 move.w #$40,$12(a6) mt_ok3: move.w $12(a6),8(a5) rts mt_voldwn: clr.w d0 move.b 3(a6),d0 mt_pushvol2: and.b #$0f`}{,d0 sub.w d0,$12(a6) bpl.s mt_ok4 clr.w $12(a6) mt_ok4: move.w $12(a6),8(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: lsl.w #1,d0 cFg to write or call : Mark Langerak, Oude Haven 26-28 4301 CK Zierikzee. Call : (0)1110-16647 Holland. PS. When you've written some music using SoundTracker V2.0 (or any other music program) we would love to hear from you ! And if it's good enough it might even appear on one of our Music Invasion disks ! am, do not use any labels that start with 'mt_'. Please note that the V2.0 version of SoundTracker is not completely downwards compatible with version V1.21. Any x ݿ DE|" J@`-@Pȥ@@ `(G69@A@^!< 7=ŸBBxf H)t`vF`k@@'(HxH^&:M@UfH(8 8 nhX`g)"*(PgnlN". \0dΆ/\۠i F ol xS;C{@d# |Rሆ@B{2A,X7` &N72hЮ$80/%l1эRN @Q089sx0xx>? Cy!yT :(@Aox!xx ܁NL;3SW;̂kd;p$ yC+LP`r{]KLM lJ*aK*Hh4 ɇ q$0bkl1W;P:`bCT JxX7to@0$2la`p Zp(Z ZY  P vvHD2x<b{b Wo NB B p5jhNƑ ± ]0ڸSY ,l)x  N惺D07nk{3"C!S",iD3<f ܘx[C o``ZtL !>鋡 Z"p;ogl[ tqS7ŌlkBNnĸL")ڏU!NB @Cw!z <vf6.40dl( c`rM@ufh" E)!1A,X6aC Ix5ĠvtxZn.2XiؔȆixCx šC @坩 tu0x! AA 3Z !57`C(7HplAC``  M @ ڹ؛ #n p2-a x] a ᑡ4 ywCO",AÇ`j0qx 0i< `yx ПC02<HO@F+`u4  L+;ڨphxipxR@󧝑9KC;{4{bzZ`b9  L麚`փW;Sb"4{Wc @{KcSh<CR##S'g'K;s }|0x <^85}7 F7e@ !>Aa qX(?(Gς()lNt@A 08b0(2`J$5$0q     B6c{g5(ʀtGkS}-q`Z <#AȂ ȀD2  @C"2`DdAD !d@"A`!@I`4 (@y <` 6$$kLL@V +31 ):|39;&2!  "*# 0(8$'5^[TVt|8 LM0ymSM[ed4b4f4a4e4@_O]5mGɈɘɄɔ@_O]5mG٘لٔԖ@_O]5mGńŔҐ|W=tն]VSBC#3 +<^[TVt}!-zl(;(7~(?(0  /  2pC@(4  + 20@(2  - 2@h`0  ) 2@(1  . 2`@(5  * 2 @(3XAQPHTgxF \ @+`A`A`A`xA"?P`xA`xAa  R P@-80!@ ! 1?p?p?sm7Oi_?Om5Ɓ4@XY1\`j|A@"   a $YNYP 'U=xU_`f 8U?@S <A|8`GO P1`(2+ 4XT6He"!b( bf!`9I @"As6!"` R Ú  @@,ԱGA`(2ŕa =* \AHb-`@u/p  ÀbāU@;b:P b@;SD@00RjW0   BRj Mi<  20,8AR!P(F`g0 0@ @9<ƈ`fD0 0C pac &$@@(2c)q `  0*I쐦xC KP+c>s+G"pcc1& F&& < @$.A,3)Dao61}abOww"H00g 1;!~algyxFPy@" 9< C_:{>a~^o( 0>aH01J(( N3V(klaPP&8 F@> R̾&Ͽ?>!X ~*R>@(k(/+{ x~ `(xa C80p C҅x"E ?>=@be~B_0P2 !A_P x`?x|Gp(nQ!c &LGr6 #  #@.m34Ac@@tb<|xC?@3 v?t1@cy[_!Aq|f_"f|ؘg|E Ù0~P w7s?̂]x/( q;x 7No 7 notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the info?rmation contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period gof the note playing in each of the five passes. Example : D#2 3208 --- 0208 --- 0208 --- 0210 etc. Volume : One of the enhancements that the V2.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the defaul:+t volume level of that sample. Example : C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. It is also possible to "slide" the volume up or down while playing. In this case the first nibble of the info byte defines the amount at which the volume must be incremented, and the second nibble the amount at which it must be decremented. Example : D#3 2D20 - Slide volume up, amount = 2 --- 0D20 --- 0D20 etc. C#3 4D03 - Slide volume down, amount = 3 --- 0D03 --- 0D03 etc. This is all very well until you try to slide the volume and use portamento or arpeggio at the same time. For this reason, SoundTracker V2.0 provides an auto-slide mode. You seMt the auto-slide mode with command # 14 ($E). Set the amount at which the volume must be slided up or down as normal. Now play your arpeggio or portamento and the volume will be slided as well. You return from auto-slide mode whenever an info byte with a zero value is encountered. Example : E-2 CE02 - Set auto slide, amount = 2 --- 0203 - Portamento AND volume slide down. D-2 3203 - Volume to default level of instrument #3, portamento and volume slide29e down. --- 0203 G-1 1000 - Return from auto-slide. Play note G-1 with etc. instrument # 1. The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Write down which instruments you have use~d. Now enter the Seka-assembler and load the playroutine-source. At the end of the routine, (below the 'mt_sampleinfo' label) create an empty block (with the blk command) of suitable size to hold the song data. Now determine where you want the samples of the instruments to appear in memory. (or create an extra block to hold the sample data.) Put these addresses behind the 'move.l' instruction in lines 35-49. Assemble. Now load the saved song in the created block and the samples to th*z5+eir correct addresses. At the start of your program, call the 'mt_init' routine, and to play the music, call the routine 'mt_music' once every vertical blanking interrupt. The 'Speed' label at the start of the routine, defines the pace at which the notes succeed each-other. ($1f4 is the default value used in SoundTracker.) Please note that, the higher the number, the slower the playroutine becomes. Also, the slower it becomes, the longer it takes to complete a pass through the routĊine. Some samples cannot handle high speeds, so you will have to try this out. As has been told before, the source-file of the routine can directly be incorporated in your demo/intro-source. To minimize the possibility of a 'Double Symbol' error, all labels used in the routine start with 'mt_'. So, when writing your program, do not use any labels that start with 'mt_'. Please note that the V2.0 version of SoundTracker is not completely downwards compatible with version V1.21. Anyv4 old V1.0 song that uses no portamento or arpeggio can be used with V2.0 without any problems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.21. (Example : C#2 2184) If the old V1.21 song uses portamento, you will have to rewrite this a little until it sounds the same as before. The songs supplied on this disk are re-written for V2.0. I sincerely hope that you find this program useful. But if you have any comments or queries about this program, feel freeaMc. Correct (?) spelling. (Karsten, it's spelled "Length" and NOT "Lenght" !!) (PHR....it ain't "Lengh", either !) Patterns. --------- Any piece of music written with SoundTracker V2.0 is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total si,ze of the table. The Keys. --------- The original (V1.21) version of the SoundTracker had a German keymap. Version V2.0 supports a standard USA keymap and this ensures compatibility with nearly all Amigas. The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. -------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursor. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. Before you can use a sample as an instrument, some values must be defined. LYou can do this by either using a preset, or by setting these values your- self. Length : This is simply the length of the used sample in bytes. Volume : This is the default volume of that instrument. Replen : When replen is set to 2, each instrument will be played once. When replen is set to any other value, the instrument will be repeated until an other note is played. Repeat : SoundTracker can also be programmed to repeat just a part of a sample constantly. This is usefuA4mll when playing waveforms. Whenever Repeat is set to a non-zero value, SoundTracker will just play a part of that particular sample. In this case Repeat defines the offset and Replen the length of the part that must be repeated. Notes. ------ C # 1 3 C 2 3 / / | \| / / | Arpeggio, portamento and volume info. / / Command / Inst# Note to be played. Note : This is sih+mply the note that must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. 3 l'- Modulate volume of next higher voice. (possibly with arpeggio) 4 - Modulate period of next higher voice. '' 5 - Modulate period + volume of next higher voice. '' 6 - Modulate volume of next higher voice and portamento up. 7 - Modulate period of next higher voice and portamento up 8 - Modulate period + volume of next higher voice + portamento up. 9 - Modulate volume of next higher voice and portamento down. A - Modulate period of next higher voice and p |fortamento down. B - Modulate period + vol of next higher voice + portamento down. C - Set volume. D - Slide volume. E - Set auto-slide. Info : This byte contains the additional information for the commands. ---- Modulation : One voice can be programmed to modulate another. This means that ---------- either the volume, period or volume AND period are no longer static values that are set before starting to play a note, but that these are subject to ch ݿ2ange during play. It can be seen that this provides a way to program viberato and tremolo effects. When a voice is programmed to modulate, it always modulates the next voice. So voice1 modulates voice2, voice2 modulates voice3 and so on. When a voice is told to modulate another, that voice is made silent. When voice4 is told to modulate, it is only made silent, because there are no 'higher' voices than voice4. How does this modulation w ۠ork ? Well, say you programmed voice1 to modulate only the volume of voice2. The volume of voice2 is no longer defined by the volume of that instrument. Instead, the words in the sample of voice1 define the volume for voice2. So if the sample of voice1 looked like this : $0030,$0032,$0034 etc., the volume of voice2 would become $30, then $32 and so on. This is used to introduce a viberato to voice2. The period of voice1 defines the speed of t 19his viberato effect. When voice1 was programmed to modulate the period of voice2, the words in the sample of voice1 would define the period of voice2. When a voice is programmed to modulate the volume AND the period of the next voice, the first word in the sample defines the volume, the second the period, the third the volume again and so on. Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the U#0Lr-^gӘ#h Lc18}—L`?;:F@A 3s?3)|pA(,F@R" b(q=y!$'!hdnLf`pgoOCρ!2rA8&A$#G|s !y`@qvPwQ0a=x%Efgr&\a r0aw00B !B@&"~yD?σap2a |$*Y@ !_AA#pB8!pci0!^BQH@”0@@ @#l^D/? =q>@t%$!2@f<91qC?|g0fpg}^1̈s y`!01t|G48aRD``ZwQ, `ć0H ap` 3C`S(C0 0@p0??EÏz=z?!/B ?w|Hi\Es(;_~8nq(s{{ExO#ύVƟy|Jl[kAEa9og=#$n7x8X s^( [@ sh`-Cbpy Pb_)\Đ|STśr(!2 LtgLNAP 789i9 3Ag"2#%%I< ` "NLr^H$y!3Pom PXk`xrAx@'P@ ă ^? u~ o7G Dp'**ﵤi \(tUߺR.  QO]-mHԠ]o2TMl/<H8D7cKaG~8f3m> @A 3(TDB ?EL2STjMS)e5L2STjMS)e5L2STjMS)e5EF  P A0N,) m̄*"  !"STjMS)e5L2STjMS)e5L2STjMS)e5L2(` P }L bV0vq_p@/& $ C wHFNA\@@Xq Ba"9 H@"@ST 0JAd!(HA"FĹ! B!B`"^0 9W! +pbl"Bak` "Ae * !@aa3@yA Q*(OFC@ @ (T]@!  `8\_@ p 8.^B+ P !*B@0W@0F@K@(r1B@@'yM  AM[@ )JaZ d 1>C"q I) @A t  ǃK@`-0@`@`@8ƒƒ7ƒƒwƒƒƒƒOƒƒ/ƒƒo /@/J h!@ b깄 E{ ZƉ P$m@9SsE PqOs  `)'@ \A? B!P`xTYH @@ (qx`S0H J?Pyp!`nt$c t1$`}0 @$H,L9,휁H ں،h ,GI l$Є paCgg@<$d<E !>v&&6N..vPU:WgS'#'SCk`xPh"w@HALD̈V!vv5)'H   & BA\M A0AfZEBД4? =(J,3 (  E ĀA?w*"0gY<\cd od0od g"_ T4  aB:fi=@-ru\R4Bz@6 -@   x>ЈYq<ϰ$uFSh|HNB8 i}@ |3@&N HA-9-HSS!`DP]0>p8<*3$ WYP-p("rdbAAA@ @B @ @ R!@蠉4FF bqB\00ɭ.'j6DC@(D Axf}qe4K@aJ@aM_ь;D°";D @Np``@?ܫ@ԋD!6CAD ':P AD0 "& d7E)qAU0`ᢀ UJR H 2 0 $ / Dă!PXSL@4!J @AB@*"7 [SP $$('A#B!$ʭa< (?::8xAȌ" aA Ec0 Z._ A%pX@`ab  , ^";TxL`PA 0a\ l @`2 !2U_x0(4D(,< , g.8[p @p0N c@V8бBE  ?@@( p 8\7!@@@~8@pA!D"!bA$„O"!袖   X8^R$PTju@ S@%t  M@.  `OA@> D@pw^A@DawBԈ aJ 0 `Q9hF$bB  .9  5L  * }F݁@E `g 0U j"hp0(R @0%kG$a4@°AD?`X58`0~ AU "D $v;14H`` H`aP` DA?  v:OCE"Ax~SHH$$ "BGH" A@$x0$T"|* H`BII `@""B#g!BCdH8| !A @r0A!I  "HpHpH`H `H~H $@Hf@ Z q jU"EiH  !AY bHaȄcV$X:A @&$8$BFBD#%HmW"ljEdBE1FHA#U 0B( >    |4 I ߈`qApA@8 $ b4@2 < w ?@@( p 8\7!@@@~8@pA!D"!bA$„O" )0  01a w (X( !& M!B ,Rg`4Vs 68)I I)=OHbnB +'D !5٨I@aX\ 0;U}`9g sHq< pp xcs=a7N hR LêJS@u`( A aC@P`^B  V>92@  * h AE0y ̞@`Yj X$@b=@?P A<\%K*} a%4'h9 lbg($B= O@Xy?@ H> '* @$+ T:4x)@r$(I@@N n bQ x  'CA1CV\;'QХ*)/xPa Ax^(PBCA0; Ѣ f~@vĢ  $$?BbP` B PBAHhD  ¦4@ A]Ь04 @4)x<@VR 2C8!`"@ dPRi+Æ@Y B00@U Yd+PU@ šhYhhhk XăyxP,.B  @d)@ &@8 dU٘d(@  ! yqT'` p\" - x`c   rbYbj bx4) tjajyzHQaW$&Ȕ3A&E" h±P4 2sE:)!` @_ $J HhPJ d+ \%&A4ފ9AdH!\7Ł P2,N9W!`؁@(\j PPR(VJc`45ф9 > }  $Qq$ P`FhvFh  ЁzP1"w聈@(ЁhfŘedAU@!`j j$vrWZr @C0\j)t<5q ԃx0P $ T lD@BDWC > SB>` ϦB[QS4_ R X x@,*, PH @ $c (H`b2nUΆPqu`bw6w`*YA O@X ?@CCBUa` ,p EHD( Dd B$)@@(\р] Ѐ`ӊ`BHHS" P5j@*0=== TA|( k(FPF`'0&ćp''_ 4\P.&gCRK`$) '*@gnlC|>pȁd4 42@T0a@`px|~rD   J@s*3@a 8# g` lȀ y>Bp"D A     XX h (H p0PP \24 Ȃ @C"ȀD2 (L V0PP ` `    24 Ȃ @C"ȀD2 $B&i@Qf@y 0lHH֙0%EPP ( ` `/2 . ,@ @@@:@<@8@?#0dh"AD !dAQ AȂ ȀD2  @C"2L 8` 0 `0 āi  `` @   @  ``@@ @@`@``@046472W+j+;'!1 )<<^[T99 MM̘/ڧdddddl|W=ffNfCf#fcffSf3F&fxx ⼶p2222_OUՈ՘ՄՔՌ́-zlFll&llf L,lymSf7ra7e7c0```````g+j )'#''3' '+'';'<<^[T9M8   Y Y 9 9/ڧfd`hdlbjfnaiho|W+ L̦,lFƦ0>1111qq#L   BP `h 50O"B0)B0`Az&`@ Bbfnv%P`Y,hu@@ Vp'ELP0 xGx f0'Ġ'cO$f<8p8r   C`0 _: 7h\@ >q @ ܀ `~[lcÁY @0a<̇=ȆdyAyy a1A,|to?@>3C0k` ׁpQ8 |AǀA$8 ÈP <_63d6P80{^&lly̐6o(6S6`d0I"p4&6n 0 CeUM! ec0O&@4#g`g@&_}8as`gC >H8;$7 '/E$>B ~@d 蕊@`fa`gʆ?>ax'+_`j4%*†0 `xN dpYP''1X8h$y̜VP?4o4i >H8$7 '/E$>B ~  2 =@AQZfC3CV )Vu| ++ ͆fC|EX?` oЬ|)G)hA?A$w |4 =#,X@A `G G r .-  K\ s ) P2i<|~?~=pX8&A @H c,c? SSĐ%fP3ɟq&dPO΄$ g<~>Ο%qώq0- HА80q?L@ !0PAC2rOc||~ ˀ pX/q$3 C9 @Qd| Ȣe"  F4" 2]E>c=dRw$wRA)|P?â8a@_A|rLxbH|ฒy...#p^e2OK0@ `+H$m fane2rvfabeLrBDad6DrfaNQQ`8rx`ra@ m gra062<` 2< BTB6aSJ QmNu DNuSABB3f DQNuo804@P1N ^ 4-  t$0a`$ j $00  p  @CBA(bfİ|A@!f!jAA9WYa9z(1U`A"BjA$ 9@ሠ b{t)!@B TN$~8P 'y0 =-")20YցjlKobg@ P3@4 "NŘP-C4 k r g  A/xldBD oD(Hx`t hz jU, %0 H h?z)@,2 È$ m    Hؒdj!|42s h$DT `(A1pH1H1H9H9H9HH5H5H=C 4\V{``&`o0@P1 @ (< @ BJCrD(H* BQ=A4@@PP@ $`*P0*H5;.s ́v?p!H\IC80  ^䁊]i 14vpSP#@H(`.F0 &p7`|'  H@ "s &\3" J @@LT!B Аp!  g@7 (Hn* }70!0/|  8D d \D˘AP dH`tI rk )@B0Q(@@. bӄ(&MN$pA4h@\j* `pD$,ƈ `Rxd `p B̲a`@Ӏ@ր!B!P⁘ D`@a @BHJp@,OP,H-sB*8a @ 2sCBH @ 0U@\0052$2`0N P\`,4 `)Pd( L h.JbaZs8 m h 2W{IB!1P⁘ D`@a4@؉@ňI DP! AM `Z"PW4 ('H-$xDH?`|Y@ր `m4*X 3@@@"0 0^`lD,g $"Ă Ar+S 5`9P8 ($" 0@р !!4/d(Bh*(0( H=! bH?@tQq' L@ `PP>U b%E񰪠B.C 5:`iuQnp!@QV&l 2` bT PW|0\ q #?..`@Ъ  0 jaB'$<Ї0Ҁ@X  2rI,+ B0B*qpb)(7 3P@5" 2PF!xV 0"" @(K¹02bT8C@@P3Pd@@(@ʘd&02` @(@ɀ=(6D00<6A@CP@)P3aP̃A|ݼMB!(6 p L{C B< <<`08- \@ 3 ! 0ÀB|`p z<FaDE | @ %0  0Ȃ@悔\@` %@p@$Pfn\-<``Peq$(9A .C_ PX 8` *B̉ `aBQ@Pu0v MH@ _p*basMf@NSLܫFPJ 9aO0L! S AMIGA besitzen, oder sich mit einem 500er oder 2000er angefreundet haben. Probleme mit den verschiedenen Systemen sind nicht bekannt, jedoch waehre ein zweites Laufwerk sehr von Vorteil. Wenn einmal Stoergeraeusche beim abspielen eines Songs auftreten sollten, liegt das an einer Speichererweiterung. Fastmemory ist, wie der Name schon sagt, schneller als Chipmemory. Die Replay-Routine laeuft im FastMem schneller und die DMA-Kanaele koennen sich bei der Verwendung#uML von sehr schnellen Rambausteinen unter umstaenden verschlucken. Das beeintraechtigt den Programmablauf aber nicht. Programmierer sollten die relativ kurze Routine bei Verwendung in eigenen Programmen zusammem mit den Samples im ChipMem installieren. (2). Beschreibung. ------------------ POSITION Ein Song ist unterteilt in verschiedene Stophen. Darum PATTERN gibt es beim Soundtracker die sogenannten Patterns. LENGHT Man kann bis zu 64 verschiedene  Patterns frei auf die 128 moeglichen Positionen verteilen. Jedes PATTERN setzt sich aus 64 16tel Schritten zusammen und kann beliebig oft im gesamten Song gespielt werden. Das hat den entscheidenen Vorteil, das man schon aus wenigen verschiedenen PATTERNs ein ganzes Lied zusammensetzen kann, wobei LENGHT die POSITION angibt wo das Lied 'geloopt' wird, also wieder von vorne anfaengt.  "PRESET Hier kann man sich aus einer mitgelieferten Bibliothek die USE PRESET Einstellungswerte fuer den gewuenschten PresetSample in den momentan angewaehlten SOUND copieren. Mit der Maus werden einfach die Plus oder Minussymbole angeklickt um ein PRESET auszuwaehlen. Beachten sie bitte welcher von den 15 Sounds pro Song gerade angewaehlt ist. Danach einfach USE PRESET anklicken und mit 'U' auf der  N# Tastatur bestaetigen. (nicht vergessen zu laden) SOUND 15 freie SOUND-Plaetze hat man in einem Song fuer Samples. VOLUME Wobei man den jeweils angewaehlte Sound im Direktmodus monophon auf der Tastatur spielen kann. Die abzuspielende Laenge eines Sounds ist gleichzeitig auch die Ladelaenge. Mit VOLUME kann man die benutzten Sounds in der Lautstaerke aufeinander abstimmen, um ein ausgelichenes und  cM professionelles Klangbild zu erhalten. (PLST.ED) 'OneShotSamples' nennt man Sounds, die pro Anschlag nur einmal ueber die angegebene Bytelaenge abgetastet werden. Das ist immer der Fall, wenn die Wiederhollaenge (REPLEN) auf zwei, und der Wiederholstart (REP) auf null gesetzt ist. 'RepeadHiSamples' sind geloopte Sounds, die solange laufen bis ein anderer Sound angeschlagen wird, oder man STOP  \D anklickt. Wobei REPEAT die Anzahl von Bytes angibt, die zum wirklichen Startpunkt dazuaddiert werden, um den Start des Wiederholteils im Sample zu erhalten. REPLEN gibt in diesem Falle an, Wieviel Bytes von diesem berechneten Punkt aus vom Sample abzutasten sind. SONGNAME Zum aendern des Namen einfach das Feld anklicken. Der Songname und die Namen der 15 Sounds werden in jedem Song mit abges4j ` ` ` ` ` ` ` ` ` ` ` 5愹` ` ` ` ` @ <P"<,yN:#@v#@zdZ#@vd^#?dbNd~Nu@BB29dfI49dh 9d^Adj"< ЂQAdj"ydb3X3X3X 3XGdj ydZBBBBBB<96YgdfNydhjXBj*D"A8RAFfBXC CfBFREQ`"A8RAFfBXC CfBFREQ`Nu .8Nh &0<BHR^djt*8DPrx (4:FR\|0>P^p|7:0>P^pv*8>`jt~ 28>BHNT\fp<TZ    $ , 4 > F L T ` l t |  6 B T Z d h n r z 8    * 6 B P X d p |   , 8 > D N T \ d j t    . 4 8 > D J R d j p v | $*06<HPV^djv$,6<D9`NV`fnt",4<B\bjtz"(.4:@FLT`flrx ",4>DLV^hnv|(28>DJPX^jnv|: .`jt>FTt~ &08DJPV^frx~"<BHPjpv~ "06<BHT^lrx~0ht ,6BP;pV\hxTlx",6@HNZfv(0:BNVbjt|HLRZfp| &,^djpv|     " ( , 2 6 < B L R X ^ f l !!!<&!$!*!4!:!F!R!`!f!l!!!!!!!!!!!!!!" """("0"6"<"T"f"r"v""""""""""""""""""## ###$#(#2#8#@#J#R#X#d#p#|################$$$$$$$.$4$<$@$J$P$V$^$j$t$~$$$$$$$$$$%%%%%%.%6%@%F%L%T%Z%`=4%f%l%v%|%%%%%%&4&@&F&h&t&z&&&&&&&&&&&&&'' ''('.'4'D'T'\'b'h'r'|''''''''''''d0d6d:d@dDdJdNdTdddddddddd     " ( , 2 6 < B L R X ^ f l !!!?tel (0) Einleitung (1) Starten des Soundtrackers (2) Beschreibung des Soundtracker-Editors (3) Belegung der Sondertasten (4) Bedeutung der Cursorfarben Anhang A. Tips zum Selbersamplen B. Einbau der Replay-Routine C. Aufbau eines Songs ************************************************************)܏p ̎x~0|3"xp `@@@@@@@@@@@  53_"#0 1!23#4$5%6FX(\:}hS@. c-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 --- }hS@. xqc-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 a#3 b-3 --- X(\:}hS@. xqc-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 c-2 c#2 d- \2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 a#3 b-3 --- @ 53"#$%&'(76!421  `` 9:`++`9``:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798!*aA999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff "#$% abcdefghijklmnopqrstuvwxyz0123456789().-'#:/`nf|f|lf>`<|~ffff`|f<~ |0008 8<0`(|(|("S 0`~ "$&(*,.02468:<>   u1i   8-2"F.2              *"- #?  , p&p <00@ , s&Oȟ&s>dOɓ , pfa`s 0|0p , s|s>Lϓ3O , ssd0< ?   ?  , p  f$׵dOd&2d>dI , p`s  0 dd  , ss>L |9 3 d , ssd |9 3 ??   ?  , sd 0χ   , sω>g?9?2d>dI ,%*P s2?92φd  , sϑ2g?9 2dd , p@g? <3 d ??   ?  , p` Ær ? , s&O?>d 2g2"d , p`d g  , s?>d 2g2R&Қs| , s@ 22r|??  ? .x0̙ . ~9asL3 ?>9` .  1@@xfL3 x?`` ? . rDeR\ &L3 f#` @ ǂ>c? 8}w . 88}gsd .sω>g? .s2? .sϑ2g? .p >|9?p@g?<|?? @ (] x< D1 %"#xdž<0~L$&DG8@013<CC8p>0s0y$2Abq 88xas0r8s8| !<0L < `|p<?? G078 Ɏp~?? .@s02r Ɏp~?|p?? ."B  s&O2" Ȏx~?!|2  . 10s&O2<±#)tN%RR)XXR fh)XR @f y02Nu3))#)XN$ y*))#b)XN$Nu y*#)h)#)XN$ y)h3))#)XN$#*)t#%)X#)xN%RNu3))#)XN$B09)A*#) y* 09)#)hB0(3)3)# B)XN$ y)h3)3)# )XN$ y)h3)3)# )XN$ y)hB0(3)3)#j)XN$ y)h#)t#)X#)xN%RNu3))#)XN$A*B09)#)t#)X#)xN%RNuB29)A$a>da6 a.a*#)x#$)tN%RB$By)NuA0BAHANuNuA)B( |;#)t#)xN%RA)B( |;#)t#)xN%RBy)NuB)p&9)x y)t)p)BB9)A=g `A="y)T"9)X$<(QR)pR)X)pg`NuA-AZBdBYAdB@}@dB@01BNu <P"<,yN:#& <O |8V"y&Q <P"<,yN:#& <O |8"y&Q <P"<,yN:#& <O |8"y&Q#&)4#&)8#)<#&)@#)D#)H#)L#)PA)4C>$<3XXQNuNf,y)"9)$<N#) f NNu"9)$9)&9)N"9)NB)NLNuNf,y)"9)$<N#) f NNu"9)$9)&9)N"9)NB)N pA=LNust-00:songs/st-01: udos.libraryaligatorF@analogstring0@ asia@ ybassdrum1&@bassdrum2@bassdrum3@bigbow /A:<@blastV@blubzing@celeste@chink @claps1~@claps2@claves@closehihatX@conga @cowbell@dangerous @detune "@ jdigdug@digiharpV@dreambells@dxbass ȇ 3F@dxtom@electom@epiano@faerytaleb@filterbass @funbass @funkbass Z@hallbrass\@heaven@heavysynth$@heifer@hooman @horns@hihat1@hihat2@jahrmarkt1 mֶ$@jahrmarkt2$@jetes@klickorgan "@korgbass@korgbeau @korgbow @korgdoi @korgfilter@korgstring@;koto @leader@licks @magicb@marimba@mechanic1@mechanic2@7Emetalkeys\@monobass @monsterbass@muteclav @nice @nightmareV@Qnoteman @organ @outlawh@panfluteV@perco@pingbells @pizza\@polysynthV@popbassF@popsnare1@popsnareD2@richstring z@ ringpianoV@roombrass*@rubberbass@shaker~@shamus@sinecz@Jsixteaseh@` slapbass$@smash1@smash2@snare1@snare2@snare3l@softbass @soundtrack,dV@sphere6@squaresV@stabst@steinway z@strange @strings1b@strings2@nstrings3@ strings4@strings5V@strings6V@ strings7V@sweepB@synbrass@synclaves@synthebassnN$)tN%RB$By)Nu09)Y2<$< y&N%K;NBy)N#"N" y)g yA)gp yD)g29)BugT \n`"9)f`A=RPy)N N#"N"By)`| yl)f`lBSy)N By)N#"N"`D3)3)N NuNB)d,y* 09)BB6R f3l)3w)N #))N PB)NLNuNB)d,y*BB6R f3l)3l)N #))N P dv?B)NLNuB)da,By)N y)gNL y()gBy)NNuBy)A( <BQB09)A*"0 g 0<"A,yN.B09) y* B0#)C( <Q#() 9)"<,yN:#)A*29)!)!) y*) ?k?N"pNNNNu y*) jN"pNNNNu y)g>) )k #)N"pNNNNu) )j #)N"pNNNNu <@QNuH y*0.g* )g patt)g #))R) 9) f B)` M* .g*|aFM* .g*|a0M* .g*|aM* .g*|a`. g g~Nu )g2 )g0 )g0 )g )g NuB.`B.`4.`HB2.A:p40PgT`;BNuB. gV;VNuB. gV;VNu y*&H $HX song)g "9)|`B 9)2ҹ)#)By**|M*a6*|M*a&*|M*#a*|M*a`,XB. glBC*(-q(=sH=sH63H Cg&$.ԃ-B-B =sH=sH;n`$.ԃ-B =sH;n Vg*=V3+n;n;n0.y*Nu <Q <y*3,|* nf# 3,|* nf# 3,|* nf# 3,|* nf# 3 patt)fa^) )f@B) song)f,R))B09*"9)fB)LNu 9)` Bš,>09) y)TЈ"y3@H@3@Nu09 4@2y)3)H @k2<@0` @j@y)0H2y)3)H @k2<@0` @j@y) y)jBy) y)jBy) y)k 3) y)k 3)B09)3)B09)3)NuHA,y2(g^hgL"HnNg*HNNdaa@LL"HnNgL"HnNLcNsHA0(gh0(g^9r@QFf:))) 9`N})g 9a)g B9)` `)1|LcN <lp"<,yN:#)T3?(H@3?$,yC)Nh#)09 2@3)I3) <X"<,yN:#* y*0x33333)B)B)B)B)B)B)d <@v>#"<,yN:# <>>й# <?>й# <?*>й# <?>й# <?>й##9D)#9v)N&NK #)|N N"pN"3)N#"#l)#l#h)l# hNu 9SA>"yQNd#Nu y0"#y)X"9)|A$ A0BAHAA0BAHA#)x#$)tN%RB$#a)X,y*X,9)|B)`BB#)x"9)`A$ A0BAHAA0BAHA#)x#$)tN%RB$R)XR)`BBB#)x2 |:ppgT`:#)tN%RR)X#)xB. |;#)tN%RB. |;'hse 8400 ---- ---- PanFlute 9900 ---- ---- Perco 4500 ---- ---- PingBells 5400 ---- ---- Pizza 9400 ---- ---- PolySynth 9900 ---- ---- PopBass 2700 ---- ---- PopSnare1 2000 ---- ---- PopSnare2 4000 ---- ---- RichString 6900 3540 2982 RingPiano 9900 ---- ---- RoomBrass (z_Y 4600 ---- ---- RubberBass 9000 ---- ---- Shaker 2300 ---- ---- Shamus 9000 ---- ---- SineCZ 3900 2178 1684 SixTease 8400 1120 6680 SlapBass 4900 ---- ---- Smash1 3500 ---- ---- Smash2 4400 ---- ---- Snare1 2000 ---- ---- Snare2 1900 ---- ---- Snare3 )K$v 3800 ---- ---- SoftBass 4900 ---- ---- SoundTrack 9900 ---- ---- Sphere 8300 ---- ---- Squares 9900 ---- ---- Stabs 7400 ---- ---- Steinway 6900 ---- ---- Strange 7000 ---- ---- Strings1 8900 ---- ---- Strings2 9700 4462 4156 Strings3 8500 1992 6130 Strings4 *N_9700 1220 3410 Strings5 9900 ---- ---- Strings6 9900 1972 6634 Strings7 9900 0500 8750 Sweep 7300 ---- ---- SynBrass 4000 ---- ---- SynClaves 1000 ---- ---- SyntheBass 7900 ---- ---- SynthPiano 5500 ---- ---- TechBass 5100 ---- ---- TheEgg 9900 ---- ---- TineWave 9900+&X ---- ---- TuneBass 4800 ---- ---- Touch 9200 ---- ---- Voices 9900 ---- ---- WabberString 3900 0254 2546 WoodBlock 1200 ---- ---- WowBass 5000 ---- ---- ---- Strange 7000 ---- ---- Strings1 8900 ---- ---- Strings2 9700 4462 4156 Strings3 8500 1992 6130 Strings4 !+V)f | `F y )f |`0 y)f |` y)f |`Nu*X 9)| y`R)g y`S)g4 y`T)gLNuBB fBy)N NuC(4B" fBy)NuC(4B! fBy)N Nu yP)g yQ)g Nu#9D)#9v)By)Nu#9)#: )By)Nu09)Y29)$< y&N%Nu edit)dgNuA8BB09)XgR g`Nu y)f$<3)II` y)f$<"-3)I` y)f$<3)I` y)f$<3)`~ y)f$<3)II`\ y)f$<3)I`< y)f$<3)I` y )f$<3)` y )f$<3 )II` y )f$<3 )I` y )f$<3 )I` y)f$<3 )`~ y)f$<3)II`\ y)f$<3)I`< y)f$<3)I` y)f$<3) y*X 9)|B09)#eSt)PP3)B09)29) Ёh#)XN$NBy)Nu y)fNu y)g6 y)g* y )g y)g edit)dgNuBA99)B(pgT 2fNuB"y)613) )dg y*X 9)|B09)09)0 y)gB09)((`h3)h y*0y) y)#)t#)xB09)29) Ёd#)XN%R3)h)R)XN$N y)f By)Nu y)f*|$sܲE3*`^ y )f*|3*`@ y)f*|3*`" y)f*|3*`NuM)3**".;V0. @g n*;n;y);n <Q <y*3n*;nBy)By*Nu 9cg 9ag 9gg 9egLBy`Nu y`gRyb ybjNuByb3`y)y?)NrNu y`gRyb ybjNuByb3`y)y?)NrNu y`gRyb ybjNuByb3`Ry) y)k 3)%$``J y`gRyb ybjNuByb3`Sy) y)j 3)`B09)A=0@ 2<$< y&N%Nu09)29)$< y&N%Nuaa\aV y)g&BR @g9gBy)`3)9gBy)By)`3))3)) yz)j yn)j yc)j4 y)j( y)j\ y)j yt)jNu y,)kNu y!)jF y)jx y )j6 y)j~Nu y,)kNu y!)j y)j. y )j y)j:NuD3) yX)jl yM)j yB)j y7)j y,)j x y!)j y)j h y )j y)j HNuBy) yX)j yM)j yB)j  y7)j y,)j  y!)j | y)j y )j V y)j NuBy)By)B)|aNBy)3 )3)N #y)Xaf )a3)3)N a<9)?)|3)3)N N N NLNu y)g y )n y )fBy)B9)By)Nu0$BAHA#)x#'(\eim spielen wird ein Sample fuer jeden Ton mit einer anderen Periode (Geschwindigkeit) abgetastet. Darum wird ein 'F' gesampled um den Sample innerhalb einer Oktave verschieben zu koennen, ohne das sich der Sample stark anders anhoert. Die besten Erfolge hatte ich beim Samplen mit einem FutureSound-Digitizer. Der fertige Sample wird dann als sogenannten Dump abgespeichert. Allerdings setzen DSound und Futuresound noch sechs Bytes fuer interne Zwecke vor dem Dump.(O, Darum ist es am besten wenn man den Sample mit der 68000er-, PerfectSound- oder Audiomaster-Software nachbearbeitet, um unnoetige Bytes zu entfernen oder einen guten Looppunkt zu finden. Anhang C. Einbau der Replay-Routine. ------------------------------------- Das aufrufen der Replay-Routine funktioniert wie folgt: 1. REPLAY_INIT aufrufen zum setzen der samples (oder laden). 2. Interrupt auf (Lev3 oder Timer) REPLAY_SONG zeigen lassen. 3. REPLAY_ENABLE zu)k m starten anwaehlen. Song startet am Anfang 4. REPLAY_DISABLE zum unterbrechen anspringen Die Register werden in der Interrupt-Routine gerettet, so das Sie sich darum nicht kuemmern muessen. Die Samples muessen in den 'Blocks' "snd1" bis "sndf" bereitgestellt werden. Das Lied muss in dem 'Block' "muzakdata" abgelegt werden. Wenn Sie in ihren Sourcecode nicht 'blocken' wollen, giebt es noch eine weitere Moeglichkeit. Laden sie den Song an eine allocatete Adresse *y<und aendern die 'lea.l muzakdata,irgendwas' in 'move.l muzakdata,...'. Uebergeben Sie den Zeiger auf Ihren allocateten Speicherbereich an muzakdata. Dann laden Sie die einzelnen Samples indem sie die benuzten Samplenamen aus dem Header des geladenen Songs holen, und schreiben die Startaddressen jedes samples in die Tabelle 'Sounds' im Quellcode. Sehen Sie sich dazu bitte die REPLAY_INIT funktion an. Anhang D. Aufbau der eines Songs. --------------------------- +4=+------- 000 20 Bytes Name des Songs 020 22 Bytes Name vom Sample #1 042 1 Wort Bytelaenge des Samples/2 044 1 Wort Volume 046 1 Wort Repeat additive 048 1 Wort Repeat Laenge . . 14 * 30 Bytes fuer die 14 weiteren Sounds . 470 1 Byte Anzahl der Patterns fuer diesen Song 471 1 Byte Frei 472 128 Bytes Pattern Positionen 600 1024 Bytes Pro Pattern Anhang !,qE. Liste der Presets. ----------------------------- NAME LEN Rep RLen ---------------------------------------- Aligator 2700 ---- ---- AnalogString 8800 3326 4970 Asia 8200 0480 5362 BassDrum1 1100 ---- ---- BassDrum2 3000 ---- ---- BassDrum3 3400 ---- ---- BigBow 7800 ---- ---- Blast 9900 ---- "-YX ---- Blubzing 1300 ---- ---- Celeste 8000 ---- ---- Chink 5900 ---- ---- Claps1 2300 ---- ---- Claps2 1400 ---- ---- Claves 3000 ---- ---- CloseHiHat 1200 ---- ---- Conga 1600 ---- ---- CowBell 1400 ---- ---- Dangerous 7000 ---- ---- Detune 5700 2410 24#.Sso14 DigDug 3100 ---- ---- DigiHarp 4000 ---- ---- DreamBells 9200 ---- ---- DxBass 2700 ---- ---- DxTom 4000 ---- ---- ElecTom 3000 ---- ---- EPiano 8000 ---- ---- FaeryTale 8900 ---- ---- FilterBass 5900 ---- ---- FunBass 6500 ---- ---- FunkBass 5300 ---- ---- $/r$6 HallBrass 9400 ---- ---- Heaven 6600 ---- ---- HeavySynth 9800 ---- ---- Heifer 2600 ---- ---- Hooman 6500 ---- ---- Horns 2500 ---- ---- HiHat1 1400 ---- ---- HiHat2 2000 ---- ---- JahrMarkt1 9800 ---- ---- JahrMarkt2 9800 ---- ---- Jetes 9600 ---- ---- Kl%0ï^ickOrgan 5700 ---- ---- KorgBass 4000 ---- ---- KorgBeau 7000 ---- ---- KorgBow 5400 ---- ---- KorgDoi 5000 ---- ---- KorgFilter 3400 ---- ---- KorgString 4000 1014 2166 Koto 7100 ---- ---- Leader 6800 ---- ---- Licks 6200 ---- ---- Magic 8900 ---- ---- Marimb&UIa 8000 ---- ---- Mechanic1 7500 ---- ---- Mechanic2 9700 ---- ---- MetalKeys 9400 ---- ---- MonoBass 6600 ---- ---- MonsterBass 9000 ---- ---- MuteClav 5100 ---- ---- Nice 6600 ---- ---- Nightmare 9900 0714 8354 NoteMan 7000 ---- ---- Organ 6400 ---- ---- OutLaw 2,drei Funktionen haben die gleiche Eigenart wie SAVE SONG auch USE PRESET, naemlich das man sie mit dem Anfangs- LOAD SAMPLE buchstaben bestaetigen muss um Fehler zu vermeiden. Mit LOAD SONG wird der Hauptspeicher geloescht und der mit SONGNAME definierte Song von der Hauptdiskette aus der Directory 'songs' geladen. Danach werden die einzelnen Samples fuer diesen Song von der Datendiskette geladen. Bei SAVE SO3:ajNG werden alle Patterns angefangen bei Pattern #0 bis zur hoechsten benutzten Patternnummer auf der Hauptdiskette abgelegt. Also die Patterns moeglichst mit aufsteigender Nummer benutzen. Mit LOAD SAMPLE wird nur ein Sample von der Datendiskette geladen. Und zwar derjenige, der im moment bei SOUND angezeigt wird. Egal ob die Einstellungen von Hand, oder mit USE PRESET gemacht wurden. 4PEDIT Mit anwahl des EDIT-feldes gelangt man in den Edit-Mode. Mit den Cursortasten kann man sich nun beliebig im Pattern bewegen. Die jeweils linke Haelfte der vier Spuren ist fuer die Noten reserviert, wobei die Aufloesung des Patterns aus 16tel Noten besteht. Drueckt man nun eine Taste, so wird der momentan aktuelle SOUND angeschlagen und der der Taste zugeordnete Notenwert in die Spur 50 eingetragen. Das koennte etwa so aussehen: C-4 1000 xxx xxxx xxx xxxx xxx xxxx | |||| notenwert |||parameter1 ||parameter2 |effektnummer soundnummer Die eine Eins stellt die Soundnummer fuer diesen Ton dar. Die drei weiteren Stellen sind fuer Effekte reserviert. Mit der 'DEL'-Taste koennen gesetzte 6ҹ=Noten wieder geloescht werden, aber nur wenn man sich in einer Notenreihe befindet. Lesen Sie bitte auch den Teil (3) ueber die Belegung der Sondertasten hierzu. Fuer das Appregiato giebt man an jedem 16tel wo es gespielet werden soll eine eins in der zweiten Stelle der Steuerungsreihe an. Will man z.B. einen Akkord mit den Noten C-2, F-2 und A-2 simulieren, dann sieht das 7eF4 so aus: C-2 3159 --- 0159 --- 0159 --- 0159 --- 0000 Es wird also der Sound #3 mit der Note C-2 angeschlagen, dann wird immer wieder die Tonhoehe gewaechselt zwischen C-2 plus 5 Halbtoene, C-2 plus 9 Halbtoene und dem Originalton C-2, bis der Sample ausgeklungen ist. (3). Belegung der Sondertasten. ------------------------------- 8 F1 Schaltet die Oktavenaufteilung um auf 1&2. Das bedeutet auf der unteren Tastenreihe liegt Oktave #1 und auf der oberen Tastenreihe liegt Oktave #2. F2 Schaltet die Oktavenaufteilung um auf 2&3. Das Bedeutet auf der unteren Tastenreihe liegt Oktave #2 und auf der oberen Tastenreihe liegt Oktave #3. F3 Wenn der Cursor ueber einer Notenreihe auf dem Pattern steht, wird mit SHIFT9@p/F3 diese Spur geloescht. F4 Wenn der Cursor ueber einer Notenreihe auf dem Pattern steht, wird mit SHIFT/F4 diese Spur in den Buffer copiert. F5 Wenn der Cursor ueber einer Notenreihe auf dem Pattern steht, wird mir SHIFT/F5 der Buffer in diese Spur copiert. F6 Positionieren des Cursors am 16tel #0 in dem momentan angezeigten Pattern. F7 Positionieren des Cursors am 16tel #16 in dem moment:an angezeigten Pattern. F8 Positionieren des Cursors am 16tel #32 in dem momentan angezeigten Pattern. B F9 Positionieren des Cursors am 16tel #48 in dem momentan angezeigten Pattern. F10 Positionieren des Cursors am 16tel #63 in dem momentan angezeigten Pattern. (4). Bedeutung der Cursorfarben. -------------------------------- Weiss: Ist Standart. Purpur: ;K+Editor wartet auf Tasteneigabe. Blau: Sie befinden sich im EDIT-Modus. Gelb: Pattern oder Song wird gerade gespielt. Gruen: Ladetaetigkeit. Rot: Abbruch Tastatureingabe oder eine Datei nicht gefunden. Anhang A. Der Replay-Befehl. ----------------------------- Zum Einbinden von Songs in die Startup-Sequence mittels des REPLAY-Befehls muessen die benutzten Samples in der aktuellen Directory stehen. Der Zugriff kann aber auch mit CD& M umgelenkt sein. Usage: REPLAY [verzeichniss] songname. Anhang B. Tips zum Selbersamplen. ---------------------------------- Samples fuer den Soundtracker duerfen 9900 Bytes nicht ueberschreiten. Beim samplen von Musikinstrumenten (z.B.Synthesizern) sampled man ein 'F' in der gewuenschten Oktave mit einer Samplerate von 11200. Dadurch sind die Samples immer richtig gestimmt und haben noch eine gute Qualietaet bei gleichzeitig bester Ausnutzung der Oktave. B=G*Stm AMIGA stark anzuheben, so das er angemessen fuer diese Maschine wird. Das gleiche sollte uebrigens auch fuer die Spiele gelten. Der Amiga ist nun einmal fuer Spiele wie geschaffen und man sollte den Unterschied zu anderen Computern schon sehen und hoehren koennen. (1). Starten des Soundtrackers. ------------------------------- Gebootet wird natuerlich die Hauptdiskette, und diese sollte nicht schreibgeschuetzt sein. (lieber mit Copien arbeiten) Der SOUNDT>y:RACKER ist unter jeder Konfiguration lauffaehig. Ganz egal ob sie einen echten AMIGA besitzen, oder sich mit einem 500er oder 2000er angefreundet haben. Probleme mit den verschiedenen Systemen sind nicht bekannt, jedoch waehre ein zweites Laufwerk sehr von Vorteil. Wenn einmal Stoergeraeusche beim abspielen eines Songs auftreten sollten, liegt das an einer Speichererweiterung. Fastmemory ist, wie der Name schon sagt, schneller als Chipmemory. Die Replay-Routine l? ,aeuft im FastMem schneller und die DMA-Kanaele koennen sich bei der Verwendung von sehr schnellen Rambausteinen unter umstaenden verschlucken. Das beeintraechtigt den Programmablauf aber nicht. Programmierer sollten die relativ kurze Routine bei Verwendung in eigenen Programmen zusammem mit den Samples im ChipMem installieren. (2). Beschreibung des Editors. ------------------------------ POSITION Ein Song ist unterteilt in verschiedene Strophen. Darum PATT @Q^ERN gibt es beim Soundtracker die sogenannten Patterns. LENGHT Man kann bis zu 64 verschiedene Patterns frei auf die 128 moeglichen Positionen verteilen. Jedes PATTERN setzt sich aus 64 16tel Schritten zusammen und kann beliebig oft im gesamten Song gespielt werden. Das hat den entscheidenen Vorteil, das man schon aus wenigen verschiedenen PATTERNs Ein ganzes Lied zusammensetzen kann, wobe A"/i LENGHT die POSITION angibt wo das Lied 'geloopt' wird. Also wieder von vorne anfaengt. PRESET Hier kann man sich aus einer mitgelieferten Bibliothek die USE PRESET Einstellungswerte fuer den gewuenschten PresetSample in den momentan angewaehlten SOUND copieren. mit der Maus werden einfach die Plus oder Minussymbole angeklickt um ein PRESET auszuwaehlen. Beachten sie bitte welcher von den 15 Sounds pro B* Song gerade angewaehlt ist. Danach einfach USE PRESET anklicken und mit 'U' auf der Tastatur bestaetigen. (nicht vergessen zu laden) SOUND 15 freie SOUND-Plaetze hat man in einem Song fuer Samples. LENGHT Wobei man den jeweils angewaehlte Sound im Direktmodus VOLUME monophon auf der Tastatur spielen kann. Die abzuspielende REP Laenge eines Sounds ist gleichzeitig auch die Ladelaenge. REPLEN Mit VOLUME kann man die  C=YBbenutzten Sounds in der Lautstaerke aufeinander abstimmen, um ein ausgelichenes und professionelles Klangbild zu erhalten. 'OneShotSamples' nennt man Sounds, die pro Anschlag nur einmal ueber die angegebene Bytelaenge abgetastet werden. Das ist immer der Fall, wenn die Wiederhollaenge (REPLEN) auf zwei, und der Wiederholstart (REP) auf null gesetzt ist. 'RepeadHiSamples' sind geloopte So D~sunds, die solange laufen bis ein anderer Sound angeschlagen wird, oder man STOP anklickt. Wobei REP die Anzahl von Bytes angiebt, die zum wirklichen Startpunkt dazuaddiert werden, um den Start des Wiederholteils im Sample zu erhalten. REPLEN giebt in diesem Falle an, Wieviel Bytes von diesem berrechneten Punkt aus vom Sample abzutasten sind. SONGNAME Zum aendern der Namen einfach in dem jeweiliEY:gen Feld SAMPLENAME anklicken. Der Songname und die Namen der 15 Sounds werden in jedem Song mit abgespeichert. Beim Veraendern der Namen fuer Samples auch wieder darauf achten, welcher Sound angewaehlt ist. Die Ausgabe des PRESET-Namen und des SOUND-Namen erfolgt im gleichen Bildschirmbereich. Je nachdem, ob man zuletzt PRESET oder SOUND durchgewaehlt hat. Will man eigene Samples benF"Sutzen, muessen sie sich auf der Datendiskette, oder einer anderen Diskette mit dem Namen 'ST-01' befinden. Dann kann man aber immer nur die eine oder die andere Diskette fuer einen Song benutzen. PATTERN Das aktuelle Pattern aendert man durch anklicken des PLAY unteren Bereichs auf dem Bildschirm. Dann gibt man STOP eine Zahl zwischen 0 und 63 ein, und das neue Pattern wird aufgebaut. Klickt man nun PAT1F beq.s appre6 addq.l #2,a0 bra.s appre5 appre6: move.w d2,6(a5) rts *------------------------------------------------ pitchbend: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 cmp.b #0,d0 beq.s pitch2 add.w d0,(a6) move.w (a6),6(a5) rts pitch2: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 cmp.b #0,d0 beq.s pitch3 sub.w d0,(a6) move.w (a6),6(a5) pitch3: rts *------------------------------------------------ replayhandler: lea.l muzakdata,a0 move.l a0,a3 add.l #12,a3 move.l a0,a2I add.l #472,a2 add.l #600,a0 move.l trapos,d0 clr.l d1 move.b (a2,d0.l),d1 mulu #1024,d1 add.l patpos,d1 clr.w enabit move.l #$dff0a0,a5 lea.l datach0,a6 bsr soundhandler move.l #$dff0b0,a5 lea.l datach1,a6 bsr soundhandler move.l #$dff0c0,a5 lea.l datach2,a6 bsr soundhandler move.l #$dff0d0,a5 lea.l datach3,a6 bsr soundhandler move.l #300,d0 repl1: dbra d0,repl1 move.l #$8000,d0 add.w enabit,d0 move.w d0,$dff096 move.l #datach3,a6 cmp.w #1,14(a6) bne.s rep JY l2 move.l 10(a6),$dff0d0 move.w 14(a6),$dff0d4 repl2: move.l #datach2,a6 cmp.w #1,14(a6) bne.s repl3 move.l 10(a6),$dff0c0 move.w 14(a6),$dff0c4 repl3: move.l #datach1,a6 cmp.w #1,14(a6) bne.s repl4 move.l 10(a6),$dff0b0 move.w 14(a6),$dff0b4 repl4: move.l #datach0,a6 cmp.w #1,14(a6) bne.s repl5 move.l 10(a6),$dff0a0 move.w 14(a6),$dff0a4 repl5: add.l #16,patpos cmp.l #1024,patpos bne.s repl6 clr.l patpos addq.l #1,trapos clr.l d0 move.w numpat,d0 move.l trapos, K> d1 cmp.w d0,d1 bne.s repl6 clr.l trapos repl6: movem.l (a7)+,d0-d7/a0-a6 rts *------------------------------------------------ soundhandler: move.l (a0,d1.l),(a6) addq.l #4,d1 clr.l d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 cmp.b #0,d2 beq.s shand2 clr.l d3 lea.l sounds-4,a1 move.l d2,d4 mulu #4,d2 mulu #30,d4 move.l (a1,d2.l),4(a6) move.w (a3,d4.l),8(a6) move.w 2(a3,d4.l),18(a6) move.w 4(a3,d4.l),d3 cmp.w #0,d3 beq.s shand1 move.l 4(a6),d2 add.l d3,d2 m LSove.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4),8(a6) move.w 6(a3,d4),14(a6) move.w 18(a6),8(a5) bra.s shand2 shand1: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4.l),14(a6) move.w 18(a6),8(a5) shand2: cmp.w #0,(a6) beq.s shand3 move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),0(a5) move.w 8(a6),4(a5) move.w 0(a6),6(a5) move.w 20(a6),d0 or.w d0,enabit shand3: rts *------------------------------------------------ datach0: blk.l 5,0 dc.w 1 da MǺtach1: blk.l 5,0 dc.w 2 datach2: blk.l 5,0 dc.w 4 datach3: blk.l 5,0 dc.w 8 sounds: blk.l 15,0 patpos: dc.l 0 trapos: dc.l 0 timpos: dc.w 0 enabit: dc.w 0 numpat: dc.w 0 plamod: dc.w 0 notetable: dc.w 856,808,762,720,678,640,604,570,538,508,480,453 dc.w 428,404,381,360,339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143,135,127,120,113,000 *------------------------------------------------ * read images here *--------------------------- ]5--------------------- snd1: blk.b 2,0 ;samples snd2: blk.b 2,0 snd3: blk.b 2,0 snd4: blk.b 2,0 snd5: blk.b 2,0 snd6: blk.b 2,0 snd7: blk.b 2,0 snd8: blk.b 2,0 snd9: blk.b 2,0 snda: blk.b 2,0 sndb: blk.b 2,0 sndc: blk.b 2,0 sndd: blk.b 2,0 snde: blk.b 2,0 sndf: blk.b 2,0 muzakdata: blk.b 2,0 ;songfile ************************************************* * end of muzak replay module ************************************************* l 5,0 dc.w 1 daOPerdings musste ich anfangs noch alle Notenwerte umstaendlich in meinem Quellcode definieren. Das war der Anlass fuer mich ein passendes Editorprogramm um diese Routine herumzubauen. Das was Sie nun hier haben, ist Das Ergebnis meiner Pionierarbeit. Sicherlich sind manche anderen Musikprogramme in einigen Dingen besser als dieses Tool. Mit dem SOUNDTRACKER ist man aber in der lage dem AMIGA einen Sound entlocken, der seinesgleichen erst suchen muss. Hauptsaechlic>>>> SOUNDTRACKER INSTRUCTIONS <<<<< ----------------------------------------------------------------------------- 'F1' - SoundTrack 1.2 (K.O.) 'F2' -GH"---------------------------------------- appreggiato: cmp.w #1,timpos beq.s appre1 cmp.w #2,timpos beq.s appre2 cmp.w #3,timpos beq.s appre3 cmp.w #4,timpos beq.s appre1 cmp.w #5,timpos beq.s appre2 rts appre1: clr.l d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s appre4 appre2: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s appre4 appre3: move.w 16(a6),d2 bra.s appre6 appre4: lsl.l #1,d0 clr.l d1 move.w 16(a6),d1 lea.l notetable,a0 appre5: move.w (a0,d0.l),d2 cmp.w (a0),d1 ZtLE, oder programm beenden. ;(oder sonstwas) END: rts ************************************************* * begin of muzak replay module ************************************************* *------------------------------------------------ REPLAY_INIT: move.l #snd1,sounds+0 move.l #snd2,sounds+4 move.l #snd3,sounds+8 move.l #snd4,sounds+12 move.l #snd5,sounds+16 move.l #snd6,sounds+20 move.l #snd7,sounds+24 move.l #snd8,sounds+28 move.l #snd9,sounds+32 move.l #snda,sounds+36[ move.l #sndb,sounds+40 move.l #sndc,sounds+44 move.l #sndd,sounds+48 move.l #snde,sounds+52 move.l #sndf,sounds+56 move.l #sounds,a0 clr.l d0 rint1: move.l (a0,d0.l),a1 clr.l (a1) addq.l #4,d0 cmp.l #60,d0 bne rint1 lea.l muzakdata,a0 move.b 470(a0),numpat+1 rts *------------------------------------------------ REPLAY_ENABLE: move.w #-1,plamod move.w #00,$dff0a8 move.w #00,$dff0b8 move.w #00,$dff0c8 move.w #00,$dff0d8 clr.w timpos clr.l trapos clr.l patpos r\ 3 ts *------------------------------------------------ REPLAY_DISABLE: clr.w plamod move.w #00,$dff0a8 move.w #00,$dff0b8 move.w #00,$dff0c8 move.w #00,$dff0d8 move.w #$f,$dff096 rts *------------------------------------------------ REPLAY_SONG: movem.l d0-d7/a0-a6,-(a7) cmp.w #0,plamod beq.s rps1 addq.w #1,timpos cmp.w #6,timpos bne.s effecthandler clr.w timpos bra replayhandler rps1: movem.l (a7)+,d0-d7/a0-a6 rts *------------------------------------------------ eXћUffecthandler: lea.l datach0,a6 cmp.b #0,3(a6) beq.s eff1 move.l #$dff0a0,a5 bsr.s eff5 eff1: lea.l datach1,a6 cmp.b #0,3(a6) beq.s eff2 move.l #$dff0b0,a5 bsr.s eff5 eff2: lea.l datach2,a6 cmp.b #0,3(a6) beq.s eff3 move.l #$dff0c0,a5 bsr.s eff5 eff3: lea.l datach3,a6 cmp.b #0,3(a6) beq.s eff4 move.l #$dff0d0,a5 bsr.s eff5 eff4: movem.l (a7)+,d0-d7/a0-a6 rts eff5: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #1,d0 beq appreggiato cmp.b #2,d0 beq pitchbend rts *--------z^0&\&j&t&|&&&&&&&&&&''&'2'V'b'~''''''''''(( (((($((((())").)6)@)N)T)Z)j)|))*T*h*n*++++"+,+6+>+H+T+\+f+n+t+~+++++++++, ,,,@,F,N,V,`,h,r,z,,,,,,-----.. .&...4.:.N.l.v.|........./ {_U/,/V/\/b/h/n/t/z////////////////////////000 0000 0&0*0H0\0f0p000001 1111:1D1J1N11111111112222&242:2`2f2j2t2z2222222222233$30343>3H3T3Z3`3j3t3~333333333333333444"4(44|x4@4H4P4X4`4h4r4|4444444444445555 5&5J5R5\5p5x55555555555566 666Z6f6l6666666666666677 7777$7*74FFFFGG G2G`Gf>04:>HRbjp|a)&rprout mt_arp2:lea mt_aud3temp(pc),a6 tst.b 3(a6) beq.s mt_arp3 lea $dff0c0,a5 bsr.s mt_arprout mt_arp3:lea mt_aud4temp(pc),a6 tst.b 3(a6) beq.s mt_arp4 lea $dff0d0,a5 bra.s mt_arprout mt_arp4:rts mt_arprout: move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq.s mt_arpegrt cmp.b #1,d0 beq.s mt_portup cmp.b #2,d0 beq.s mt_portdwn rts mt_portup: moveq #$00,d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s mt_ok1 move.w #$71,22(a6) mt_ok1: move.w 22(a6),6(a5) rbTts mt_portdwn: moveq #$00,d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$358,22(a6) bmi.s mt_ok2 move.w #$358,22(a6) mt_ok2: move.w 22(a6),6(a5) rts mt_arpegrt: cmp.l #1,mt_counter beq.s mt_loop2 cmp.l #2,mt_counter beq.s mt_loop3 cmp.l #3,mt_counter beq.s mt_loop4 cmp.l #4,mt_counter beq.s mt_loop2 cmp.l #5,mt_counter beq.s mt_loop3 rts mt_loop2: moveq #$00,d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s mt_cont mt_loop3: moveq #$00,d0 move.b 3(a6),d0 and.b #$0f,d0 bracWQa.s mt_cont mt_loop4: move.w 16(a6),d2 bra.s mt_endpart mt_cont: asl.w #1,d0 moveq #$00,d1 move.w 16(a6),d1 lea mt_arpeggio(pc),a0 mt_loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s mt_endpart addq.l #2,a0 bra.s mt_loop5 mt_endpart: move.w d2,6(a5) rts mt_rout2: lea mt_data(pc),a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$1d8,a2 add.l #$258,a0 move.l mt_partnrplay,d0 moveq #$00,d1 move.b (a2,d0),d1 asl.l #$08,d1 asl.l #$02,d1 add.l mt_partnote,d1 move.l dd$1,mt_partpoint clr.w mt_dmacon lea $dff0a0,a5 lea mt_aud1temp(pc),a6 bsr mt_playit lea $dff0b0,a5 lea mt_aud2temp(pc),a6 bsr mt_playit lea $dff0c0,a5 lea mt_aud3temp(pc),a6 bsr mt_playit lea $dff0d0,a5 lea mt_aud4temp(pc),a6 bsr mt_playit move.w #$01f4,d0 mt_rls: dbf d0,mt_rls move.w #$8000,d0 or.w mt_dmacon,d0 move.w d0,$dff096 lea mt_aud4temp(pc),a6 cmp.w #1,14(a6) bne.s mt_voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 mt_voice3: lea mt_aud3temp(pc),a6 ceWKmp.w #1,14(a6) bne.s mt_voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 mt_voice2: lea mt_aud2temp(pc),a6 cmp.w #1,14(a6) bne.s mt_voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 mt_voice1: lea mt_aud1temp(pc),a6 cmp.w #1,14(a6) bne.s mt_voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 mt_voice0: move.l mt_partnote,d0 add.l #$10,d0 move.l d0,mt_partnote cmp.l #$400,d0 bne.s mt_stop mt_higher: clr.l mt_partnote addq.l #1,mt_partnrplay moveq #$00,d0 move.w mt_maxpart, RwBd0 move.l mt_partnrplay,d1 cmp.l d0,d1 bne.s mt_stop clr.l mt_partnrplay mt_stop:tst.w mt_status beq.s mt_stop2 clr.w mt_status bra.s mt_higher mt_stop2: rts mt_playit: move.l (a0,d1),(a6) addq.l #4,d1 moveq #$00,d2 move.b 2(a6),d2 and.b #$f0,d2 lsr.b #4,d2 tst.b d2 beq.s mt_nosamplechange moveq #$00,d3 lea mt_samples(pc),a1 move.l d2,d4 asl.l #2,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4),8(a6) move.w 2(a3,d4),18(a6) move.w 4(a3,d4),d3 tst.w d3 gļ,d1 bgt.s mt_init1 dbf d0,mt_init2 addq.b #1,d2 mt_init3: lea mt_data(pc),a0 lea mt_sample1(pc),a1 asl.l #$08,d2 asl.l #$02,d2 add.l #$0258,d2 add.l a0,d2 moveq #$0e,d0 mt_init4: move.l d2,(a1)+ moveq #$00,d1 move.w 42(a0),d1 asl.l #1,d1 add.l d1,d2 add.l #$1e,a0 dbf d0,mt_init4 lea mt_sample1(pc),a0 moveq #$00,d0 mt_clear: move.l (a0,d0),a1 clr.l (a1) addq.l #4,d0 cmp.l #$3c,d0 bne.s mt_clear clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr`.l mt_partnrplay clr.l mt_partnote clr.l mt_partpoint move.b mt_data+$1d6,mt_maxpart+1 rts mt_end: clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$000f,$dff096 rts mt_music: addq.l #1,mt_counter mt_cool:cmp.l #6,mt_counter bne.s mt_notsix clr.l mt_counter bra mt_rout2 mt_notsix: lea mt_aud1temp(pc),a6 tst.b 3(a6) beq.s mt_arp1 lea $dff0a0,a5 bsr.s mt_arprout mt_arp1:lea mt_aud2temp(pc),a6 tst.b 3(a6) beq.s mt_arp2 lea $dff0b0,a5 bsr.s mt_aoiq milka nuss, ein yes torty nuss.... doch... hmmmmhmmmmmhmmmmmmmmdaumdaummmmmmmmm.... an alle : ir seid alte saecke, wichser, pisser, abgefuckte scheissriegel, mir ist so schlecht, uhaaaaaaa !!!!!! waaas ??? hey! eh, du hast erst 95 zeilen, das ist echt nicht viel !!! das ist nicht mehr witzig, echt !!! was faellt dir ein, das ist echt nicht witzig !!! das ist auch nicht viel mehr !!! denkst du das liest noch irgendeiner durch ??? ahpjWohohoooo!!!! oh! oh!! mal sehen das sieht bestimmt lustig aus.... waas ??? los schreib mal hin da !!! toword ze real ov ze bildink ley onn ould chip. schlidly largscher zen ze asers, ant barried benass iven tripper geils ov thrust and copper nets. pack die scheisse weg !!!! okay schreib hin : interest !!! echt, echt voll die id... echt, echt !!! echt, hahahaha ha ha !!! eins ausrufezeichen ???? dogge, jetzt ganz im ernst, das liesqkFAt doch keiner durch, echt nicht !!! helloechen d.o.c !!! hey der will wieder 'ne demo !!! 100 maerkers, billiger bin ich nicht und ausserdem skywichser ist immer gut !!!! echt, du bist die letzte sau, jetzt reicht's mir aber, du ficker !!! will die happy lesen !!! dogge, du musst den scrolltext schreiben, nicht ich !!! dogge! okay !! okay ! diddelliddeldimdemmdimdim !!! doc ich moechte jetzt gerne die eier von shut berlin abhacken !!!! dasrl+u klingt voll schwul... aech moechtae jetzt gaene die eier von shud baerliin abhackaen... eh das klingt echt oberschwul... achja leute : p.e.n.i.s kommt doch !!!! ausserdem : we don't swap with people who swap with generation x , is that noticed, man !!!??? nimm mal deinen huebschen kopf da weg !!!! eh, die denken nachher ich bin schwul, eh !!! nachher ruft hier keiner mehr an, wah !? wah!? hmhmhm. pspspspsssssssss. mach das mal auf speed 5smB* oder so.... ich muss gleich los (dr.m) !!! jedesmal das gleiche intro von unknwon kostet nur : dm 100 !!! warte mal... was steht da ??? natuerlich nicht das gleiche intro, logo und scrolltext wird natuerlich anders !!! duetscjhkujfoewi , was !!! haah! musst du denn jeden pupser aufschreiben ???? wozu hab ich eigentlich die waits eingebaut, die benutzt du nicht einmal !!! achso !!! fuck you big mac, where's my (dr.m's) elephant ??!! stnqo'n fetten arsch, eklig !!!! das merken die sofort den zusammenhang !!!! benutz mal die waits !!! gleich bleibt fetter arsch W? stehen, oder so !!! okay i think that langt for now, you sau..... tis is the end W? end W? eW1nW2d W3 hohoehoehoe satte 136 lines.... $8frz~2>PVbr|uo>JTl @Zfrz "04FRhnv  &.4:BHN\rz&.<DLZbjxHh < H X d ~ * 0 6 @ F L X ^ j n  4 B H Lvp@^ Z ` h l r x   . 4 > b  :Tn (2<FPZdnx(2Rn $*.4<DLZl ,:JXht$4@PVbp|wq< $0:@JVdt  2BN^hx$@Lnv~(0:BJV^dlv06Xv  ,xr:FR^hv"*28@HVhpx$*.8>FTbpz"*<BZblv0<DLXt04:>HRbjp|y]r PX^p   . 4 : > D J P \ j r z !~!!!"""0"\"h"n"t"|"""""#Z#l#~#######$ $$,$6$<$H$L$V$h$p$v$|$$$$$$$%% %%% %(%.%@%R%X%^%h%l%r%|%%%%%%&&&& &*&4&>&F&Pdt:croll, S9steW2-S6steW2-S3steW2-S2stereo-speeded scroll.... this release is called : d.o.c soundtracker v2.0 !!! distribution and spreading by dr. mabuse orgasm crackings (d.o.c) !!! this version of the unrelenting d.o.c soundtracker was coded by unknown of d.o.c !!! thanx must of 'coz go to karsten obarski, exterminator of jungle command and tip of tnm for the cool preparation !!! the text for this scroll of 'coz written by doctor mabuse of d.o.c !!!! in a euTofew minutes (if you are not too stupid) you'll notice that this soundtracker is the best one in world !!! you'll get all what you want : analyzer, playroutine, instructions, disk options, pattern play, record, two new commands and an improved tasten-abfrage !!! if you are satisified or if you can't get satisfaction contact us by smashing the following lines on a letter : plk 089114 c / 2300 kiel 1 / west-germany !!! following now : some greetings... who bfvA:elieves that, eh ??? no, i think it's better you throw a look in our demo, there you can perhaps read your name (proud?) !!! are you slow of mind ?? no ? then stay awhile... and now some stories transmitted from daily life... yesterday my (dr. m's) brother married and i was very funny at the end of the marriage (approx. 4 o'clock am).... some guests left the party at about three o'clock in the morning, and two of them had to sleep in my brother's flat... so my brogwR~0ther gave 'em the key for it and told them to hide it on a place before the door... and so they left the party... one hour later we (my brother, his wife, the dj and me) left the party, too... as we arrived at the flat we began to search for the key... and as you may think now - we didn't find it !!! we searched everywhere, but we couldn't find it... it was such a fun to see my brother digging with his hands (in his fine clothes) in all that rubbish flying around therehx7.... used chewing gums, cigarettes and mega spiders are very nice to get in touch with... the end of august is nearly reached, and i'm now the master of the cutter and the besen !!! never forget : d.o.c has a neutral smell, is waterproof, refillable, odeur neutre, etanche, rechargeable, olor neutral, resistente, rellenable - zu deutsch : d.o.c ist geruchsneutral, wasserfest und nachfuellbar !? and of course : made in germany !!! for our norwegian friends : en doc' gjoiyC,er godt for munn og svelg !! doc' halspastiller, doc portemonaies, doc vine, doc snacks - all from d.o.c !!! keep this tracker out of children's reach !!! the next story is coming up... in the middle of my brother's party some guys got the idea to pup up the following german folk song (melody : the walking is that muellers fun) : S2der s p a r g e l in neustadts fruechtereichem land ist ein gemuese wohlbekannt - der spargel. er schmeckt sehr gut und istjz| famos, drum freut sich immer klein und gross, wenn endlich geht das stechen los - des spargels. im dunkeln schlaeft er klein und still und kann nicht so, wie er wohl will - der spargel. und wenn es warm und etwas feucht, er schnell aus seinem loche kreucht, und seinen kopf ganz offen zeigt - der spargel. die hausfrau ist meist sehr entzueckt, wenn sie 'nen schoenen kopf erblickt - vom spargel. und war 'ne gute stange dran, spricht laechelnd sie zu ihrem mann : er hatk{ԛ uns beiden gut getan - der spargel. nicht immer haben frauen glueck, nicht immer ist er schoen und dick - der spargel. oft ist er duenn und langgestreckt, oft krumm, als wollt' er um die eck. doch stets erfuellt er seinen zweck - der spargel. ein langer off'ner aufenthalt, ist auf die dauer auch zu kalt - dem spargel. drum schuetzt ihn sorgsam und auch schlau, denn ist der kopf erst veilchenblau, verliert den wert er fuer die frau - der spargel. und stecket, wl|enn er gut und fein nur in gesunde dosen rein - den spargel. denn wenn er erst vergiftet ist und wehmutstropfen er vergiesst, dann werft ihn lieber auf den mist - den spargel. wie jedes ding auf dieser welt, so auch der zeit zum opfer faellt - der spargel. drum merkt, solang er steht und schiest (sach mal machst du das mit absicht ??) , dass ihr ihn voll und ganz geniesst. bis er den letzten saft vergiesst - der spargel! tjatjatrallaalaaaa! now only some more masm}Zsagen an some popel : 1. bytemaster / tuf 2. zeronine 3. defjam 4. tip / tnm 5. ftf / tcg 6. chris huelsbeck ist doch sowieso die niete da (unknown) to number 1. : ehee. (unknown) hoehoe. (dr.m) 2. du altes schwein (unknown) sowassagichnicht (dr.m) 3. some compactings don't work 100! (unknown) isaynothing. (dr.m) 4. ruf mal an! (unknown) call germany 110 (dr.m) 5. wie gefaellt's dir im altersheim ? (unknown) naja. (dr.m) woooooooowwwwwww!!! nachher denh'=]nken die, ich bin voll der 'c' programmierer!! was hier ? waaaas ??? ich sag lieber nichts mehr !!! hoer auf, sack !! jetzt reicht's aber du altes (knack!) nee komm, jetzt schreib mal was vernuenftiges, hier !! komm nun schreib mal echt was vernuenftiges, echt jetzt, hoer auf, mann !!! das ist nicht mehr witzig, echt !!! aupfff... nee, jetzt kam auch noch kotze mit hoch !!!! brrrrr, ist mir schlecht, brpbrp !! ich !!! zwei snickers, eineYu`kZက 0 0A<π 0?~ 1; 0; 0 03|g 0q 0/? 0 0fπ 0w [0? 3 3 3~g 3 3131 3 1~癟 338x9 18|93~9ߌ1߿ό0 031\ 3 1`< 0p~ 0w 0w 0ap? 0`0f 0 0/? 0 03~ ? 0?0~< 1~> 0~ 0q?ߌ0!]W8΀ 0?~f>ۿn߿0̃?ߎ3?n^p|>ۿ7y߿fs?v>7ృ wv߷f}۷wϛw0 @30w_Sϟ>gÛ~ߞ߻3 `>}wvcv393  w`.<~ww?f<~wwǎ?߾`><~ww?f<~wwǏ?߿`?d !"#$%&'()*+,-./0123456789:;<=>? abcdefghijklmnopqrstuvwxyz[\]^_HaLNuS9cgNucR9b 9bfB9bB9b@A"yU36U36]2&DB;;@ @@${ؽ{ܥc_c[c[bS!{{@ @@$cc{c{bs!@ @@B(?_?U3~U3vU3v_0fB"??@ @@?!0/-|-l-l/l!$?@ @@xxx x@ cs>%j@@`  p p p 0p@ @@ ``` @ @@@ @@ x ` ` ` x   @ @@?$|%|-`-`-`-`$|?|@ @@wLB3E;U;0]30]30]"0DB;;@ @@!cߍsߥ{XkXkXJX!{{ S2and this is a journey into stereo-speeded sNƆOO oPލjQލրRƍ~SoBg T#>y ߿|<>~߿㟿w>`gـf͛߳Uo@VVVΥWa`ʁσ=>Ѱgg?Ïͻ6<߷ݻw9&2dp LX~ucmC[g~}߳ϟ>߷{g?~͇~?>۷{ϛ~|y~nݿ{۾{ݻ~̙>72< 3 ?0 Drg߻ σ?gςϟn߻on~|n߻6?ݏ?ϟ=g͟>w|wn|ݻ၂d7gL 2  ?σ?n?ϟE sqRn{Ͽ>ݏ?>o{{ݟ|wv{?>?gLd&s2<8~>|σ?~>3?n~ww}g}ݏ?nϻvm}|wnݻo ?gL3 3F8Iσ?Xon=౞ݏ?w?g|wߟw9g?ɟ 3?3?σ?~>3?nG)uiL~ww}g?ݏ?nϻvm}|wnݻo9gL3 3g?H, @ݻvl|vᙂdɐ?g߃?|aߏvlI8ov3&Odɐ?~ϟcv;w3ϻ۲{w~~ϛ6?{ϻvߟ0ޙw;~n>Jd`n+B?wgb=3c}o=>7~owwg7xw|@Kwn7>g>p&Lϙ9 0< =3ߟw|,o=#~ws7xߛϏwwn>g>p&L7Aρ309 0  ౟?0n?=#wsݻown~s@70 | 0 B!=  bσ>|=>|fwǟϏ~w?ś?7 0< -w / `  a q >|cy~ ϟ矎?~gy ߀?cxp ߹~? ?~{c}|p ?8wc9~ y3~a?|` fo0`  .` a q<cyxپ~of?gy??w|?c9;~w~;c}9;~??c99~߁3fa < f7 ~` /מ` a q3<cy<3<|yo;?gy?~0;?~w;cÀ9?;c}q;w0?x;?c9w;~}a3|fc`>f7` o<?f/ٞ~y7?~0?w?{0>}09~9?w97|7ٌ<̀ǁπ<3f͙l?~0;~9;绎w;w0;;>?7|fl31e6W<?~h@?~0=|ـ>g9x;w0ǟ<9w~~߀9s0`|?`c6`9>a<3f͙l?~0;~21RV9;绎;w0;;>?`|fl3<3_?w3`<w ?~f}6o!|3_ 4Y`1~ٰ~6o`w`;9߿?wϸ9`ٳ<>g~ 6r7ˆ" 3޽  53"#1!2"34$5%6&78(9):    FX(\:}hS}hS@. c-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 c-2 c#2 d-2 d#2 e-2 c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 --- }hS@. xqc-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 c-3 c#3 d-3 d#3 e-3 c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 #?3CNa#3 b-3 --- --- --- --- --- --- --- --- --- --- X(\:}hS@. xqc-1 c#1 d-1 d#1 e-1 f-1 f#1 g-1 g#1 a-1 a#1 b-1 c-2 c#2 d-2 d#2 e-2 f-2 f#2 g-2 g#2 a-2 a#2 b-2 c-3 c#3 d-3 d#3 e-3 f-3 f#3 g-3 g#3 a-3 a#3 b-3 --- @ 53"#$%&'(76!421  9 *000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455$9q565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff "#$% abcdefghijklmnopqrstuvwxyz0123456789().-'#:/ "$&(*,.02468:<>%H     Dw M ,,8$,2"2  p@  p@p@p@              )",.Jg6 g gNua2&PB@.T Tqj8q;TNuaB@.T TXk8X;TNu=fINu=fINu>fINuINuJVga8. g g0 gF gJ g^Nu.S<=I3JNu .@o|@nnNu3JNu.99Nu.g B=J#`|f<)#䡘~ <f<f<<f>|0 0 <<0 0|<f~ff|f|f|<f`f<|fff|~`x`~~`x``>`nf>ff~ff~~~f<ff|ff````~Bf~fffv~nf<fff<|f|``<ffn>|f|ff>`<|~fff*O6f>fff<ff~fBff<ffff<~`~80008`0 888lD~`  a q >cy߾f |y3矎~gyw ~8pcÞ? pߙ߹~ 8pc}ß? ~v+q>sc9ùß pwy >~1faٳ 0f30`  `  a q ߾fcy|0 f}߿矾wgy~ wߙÞ?c wy߹~ß?c}~ w=?ùßc9p ?y ,,5a0~` |0߀`  `  a q 0~`cy> f矾8pgy 8xc<9 ߹~8|c}9 ~?~pc98 yf|c0a>y 3y0` Wh-q(=sH=sH63HJCg&$.ԃ-B-B =sH=sH;n4`$.ԃ-B =sH;n4JVg,=V0.3*;n;V0aؖ0.y=`l <Q09=y@3M nf# 3Mf nf# 3M4 nf# 3M nf# 3 patp<2Q( `gV agN bgF dgR egJ gL gD gåZ( g g,6T#6T<#><#<#>|<#Gl<#H4<#H<#Ig^a,y=."9=2 Aa$<NB0#=:f`*"9=: Aa$9=6&9=>NB0"9=:NB=:`ra׈,y=."9=2 A#10$<NB0#=:f`׼"9=: A#10$9=6&9=>NBȉ0"9=:NB=:`st-00:songs/st-01: !Kstdatados.library  ̹B ar29< Ёd#C~pQAr (:g #7d=2` #7j=2 9=>"<,yN:#=6A r29a y=R PACKvf,# # 9=RX # aBp09Jy faaJy fa`Nua8 y=R"H # "HX# "HX=># #=> yҾh=R=>"y=RX 9=> Sfan # "ҹ # y=R PACK!y !y #=R=6 9  #=>Nu y "y $y tBAaJg RA Afana`F&Ho&Iz*HR(fgn`ZS(Hfn& Sl>( S o| m6<`<UFNMlv`l*#!!ܷn g:a|9!&9!06`a06`g&SCa06`66` a~v`(BNupalpNu JAg6BA C lRy"SCp`YNuRy"C Cp NqS@eQNuB@$tQNu y=R "y 9 "9 a< y "y=R 9 Sf y=RX"y=R Ƒ BSfNu$A fane2rvfabeLrBDad6DrfaNQQ`8rx`ra@ m gra062<` 2< BTB6aSJ QmNu DNuSABBf DQNua y=RprtBy<0R@ @n49p09a^faf|aR fa`H`0HAX"0g. 0f4Nu,y=."<$$<#10NB0.gpNupNu,y=."$9=6&9=>#10NB0JgpNupNu,y=."NST-00:modules/mod.9ga#songNu y=R p09<ShJhjBh`Jy y9Da SGfLNuA,0</QSyR> f #d>` WfpR>0@3B` Sfp0R>3D`AHrg R @fr |JnHC0<TQA"y< @0<2<QRQ y< @0<?((QNuHAC=EGlaBAC=EH4a.AC>EHaAC>EIaLNuJ<3Nu gRNu}5  !"##$%&&'())*+,,-.//HJfJygpym3fJygRym3fJyg4ym3fJy|Sgym3LxNuLxNua63  |aaBy ` @Um @m A mf A+m4`v A m Amb A!m A,m A7mNuaaDaBy ataIKavgaa g`~B@a3 `apaJafa0afBy a``DaHaaRBy aa:IdKBaga"ag`B@a63 ``aFy "|N Jy g |` |f8<hhh(h(h(P(QNuaazafa$``Jy gK09 gS@aNuJy gKz09@U R@2-AAnapNuJy gT AmN A3nHYAK<09 Aml*Е @"m"Q0-S@Q y g`Nu=Rst-00:songs/9gaaJ#patp`~#<# w,oes this by --------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently  ? playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento: Portamento is used for 'sliding' of the instrument. ---- ------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example: D#2 3208 Slides down $08 --- 0208 Slides down $08 --- 0108 Slides up $08 --- 0210 Slides down $10 (=16) etc. Position jump: -------------- The position jump command will do the same like the pattern breakyBjM command, but the info byte gives the playroutine the no. of the position. Example: E-2 3B04 - Break the pattern and jump to position 4 --- 0000 --- 0B06 - Break the pattern and jump to position 6 Volume: One of the enhancements that the V2.0 version provides is the ------- ability to change the volume at any time during play. When command $0C (=12) is selected, the volume is set to the value contained in the info byte. The vW˪olume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example: C#1 1C22 - Set volume to $22 (=34) and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22 (=34)) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. Pattern break: -------------- Pattern break is used to create shorter patterns than 64 notes. The note with the $0D command will be played and after that the next pattern in the position-table will be played. Example: A#3 1D00 - At this point the pattern interrupts. --- 0D00 - Look upper line. C-1 0D30 - Look upper line. Filter: This Soundtracker version allows you to turn the lo-passZ@m filter ------- on/off. Example: G#2 1E01 - Turns the filter and the power-led off. --- 0000 E-1 1E00 - Turns the filter and the power-led on. Warning to all Amiga 1000 owners (like Unknown): Don't play with the power-led because some A500 and A2000 owners will not be happy when they hear your song. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't u}effect anything. The normal speed is 6. Example: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speed If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your musi~Bac in demos, intros, games etc. It was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using DOC-SoundTracker, save it to disk. Use the function 'SAVE MODULE'. You will find at the 'MODULES'-DIR a file, which contains all muzakdatas and instruments. Load with SEKA the source of the playroutine and enter the size of saved module at the label 'mt_data'. Assemble. Now load the osaved module to 'mt_data'. How to play a song: ------------------- At the beginning of your program, call the 'mt_init' routine. Each vertical blank jump to the 'mt_music' routine. To stop the song jump to the 'mt_end' routine. Please note that the II version of D.O.C-STracker is completely downwards compatible with version V9. -------------------------------------------------------------------------- If you think the D.O.C-SoundTracker II is best and DOC is great, write to: DuB8#.O.C (Don't write this line.) PLK 089114 C 2300 KIEL 1 WEST-GERMANY If you have any questions to the police, call Germany : 110 ------------------------------------------------------------------------- ADDITIONAL INFORMATIONS AND HINTS : - SOME INSTRUMENTS HAD BEEN CHANGED AND SOME HAD BEEN REPLACED FOR OTHER INSTRUMENTS (FROM K. OBARSKI) - CAUSE OF DISK-SPACE ON SECOND INSTRUMENT DISK UNKNOWN COPIED SOME INSTRUMENTS FROM HIS MUSIC-RIPPS TO IT. THE MAIDEN VERSIONr -8 7` Z RESET ; BYE !!! RESET ATBSC @D A%") TYPE ST1_2/TRACK1_2.INS TYPE S/MENU TYPE TNM1/TRACK1.INS TYPE S/MENU !"% TYPE ST2/TRACK2.INS TYPE S/MENU TYPE DOC2/TRACK2.INS TYPE S/MENU #' TYPE ST3A/TRACK3A.INS TYPE S/MENU DIR SONGS TYPE S/MENU  SORRY !!! 13~#' TYPE ST4A/TRACK4A.INS TYPE S/MENU 14~#' TYPE ST4B/TRACK4B.INS TYPE S/MENU 15~!% TYPE ST6/TRACK6.INS TYPE S/MENU 16~ SORRY !!! 17~%) TYPE ST1_8/TRACK1_8.INS TYPE S/MENU 18~!% TYPE ST9/TRACK9.INS TYPE S/MENU 19~?~HCS'4220-MAPAlbert S.@($  *&" <,<,>.>.?/?/.789   / / | Arpeggio,portamento,volume,speed,filter and / / Command position info. / Inst# Note to be played. Note: This is simply the note that must be played by that particular ----- instrument. Inst#: This is the number of the instrument that must be used to play ------ the note. When the instrument number is zero, the last selected instrument will be used. Comman g5d: This number tells SoundTracker what special functions must be -------- preformed while playing the note. These functions are as follows: 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. B - Position jump! C - Set volume. D - Pattern break! E - Set filter on/off F - Set speed. Info: This byte contains the additional information for the commands. ----- Arpeggio: Arpeggio is used for simulating accords. It d; Improved record function Extended keymap (Sonix style) Pattern play function Delete Song function in the dos menu Improved ANALYZER Pattern changing during play Pattern break command !!!! (geil) Position jump command !!!! (geiol) Sample zero function New playroutine for use in demos/intros/games Improved graphics (colors,styling,fTont) Nice scrolling Animated mousepointer Patterns. --------- Any piece of music written with SoundTracker II is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. The Keys. --------- The original (V1.8) versionJԋ} of the SoundTracker had a German keymap. Version II supports a standard USA keymap and this ensures compatibility with ALL Amigas. The keyboard has been extended, try typing on the whole key-rows. The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: --------------  Cursor-keys move cursor. shift + Cursor-keys move cursor fast. alt + Cursor-keys move cursor fastest. F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursor. shift + F3 - Cut track of c9urrent pattern and copy into copy-puffer. shift + F4 - Copy track of current pattern into copy-puffer. shift + F5 - Copy puffer to track of current pattern. alt + F3 - Cut the whole pattern and copy into copy-buffer. alt + F4 - Copy pattern into copy-puffer. alt + F5 - Copy puffer to current pattern. Special keys: ------------ To quit the D.O.C-SoundTracker II point the mousepointer at 0,0 and press: alt + shift + left anRd right mousebutton together !!!! Sample zero function: --------------------- While edding-ting you're able to set the sample to the value zero (0!). Press all mousebuttons (three at all) at the position of the sample- gadgets (plus,minus = +,-). Now you can edit the pattern with the sample 0 to prevent difficulties according to the volume (Frog's idea) !!! Instruments. ------------ You can use up to fifteen different instruments in one music-piece. All instruments are listed in  the preset-list. The volume is allways 64 but you can change it to each value between 0 and 64. To change the other values of each instrument you have to load the preset-editor. With that tool you can change the whole preset-list. TIP improved the preset-editor : some values (Length,Repeat and RepeatLength) have to be entered in hexadecimal !!! Now you can use samples up to $8000 (=32768) bytes !!!! Notes: ------ C#1 3 C 2 3 / / | \| N]NuNU/,?-N \ON]NuapCEf2<kt"Q)O,x)NH瀀.)gKN`B_NsC Nh)@f .<N`NPONudos.libraryINuNU/ Hy0,/NPO)@fBHyNjPO.lNu lBh l1|"l3| l ,ĐP)@ l MANXBNzXO$@Jg./- /-/ NO 9| lh lh `DHj\NXOHj\NdXO)@ lJ$g l"h$/NXXO/,/ NPO)l܂Nd l N l!@HxHz,NbPO l!@ /,?,N\OBgN TO$_N]Nu*NUH 0$m m (( D= (&@HHЭ T9@B0,H/NbPO)@fL 0N]NuH? KR//,NDO Hz:HHЬ/NPO?-/ /,NDO Bl&l$KH:| g| g| g | g| fR`  mz "f.R KRH:g JR|"f "fR`B*```8 KRH:g&| g | g| g| g| g JR` JRBJEfSRl`ZBB0,R@H/N LPO)@fBl`z&l`0H l!/ NXOR@HRElm0H lB` L 2/ `WgRA`BQNu0<`0/ oJfSH"oS@WgB /Nu0<`0/ S@k ow1"o f SHJWpNucpNupNu o "ofNuNUH0$mBHzN PO)@XfL pN]Nu m "h$/)N XO(gRHzm D/(6N PO&@Jg4Hx/ N PO,g$ * E%h%FHxHz8N PO%@/N XO/,XN XOBX`icon.libraryWINDOW*NU/)mHm/- HzNO 8 lB0(N]NuNU lR- H|N]NuNUHm /-HzpNO N]NuNUH $m mf m(`Jm o mp0(` m0H(BmJm lDm JlD;|2- H NA\S2- H N(fJmgS- LN]NuNU"H0$m&m8 Bm+m KRH8g|%fB-0;|;| ;|' KRH8|-fBm KRH8|0f;|0 KRH8|*f mT;P KRH8`2Bm`0- D|0;@ KRH80R@An0fԸ|.fZ KRH8|*f mT;P KRH8`2Bm`0- D|0;@ KRH80R@An0f;||lf KRH8;|`|hf KRH80H`x;|`;| `;|`;|?-Hm0?-/-NO +@0-Hѭ`Z mX+P/-N XO;@`J mT8A/+H`(cgSg gtYgUgr2+IWgt`A0;H0-mo;mJmgh m -g "m +f. m0f&Sm mRH?NTO|f pL N]Nu`?-NTO|fp`Rm0-SmmnBm` mRH?NTO|fp`Rm mJg 0-mm0-mJmf(`?< NTO|fp`xRm0-Smmn`?NTO|fp`RRm` 0-`BHHBJjDRDJjD Da>JDgDLJNuHHBJjDRDJjDa `/a "JNu/a"JNuH0HAJAf HA64B@H@"H@20BAHAL NuHA&"BAHAH@B@tЀӁbR@QL Nu o Jf SNuNUHl?- )rN\ON]NuNU/8-/- ?N0\O| f$ m ( Hg?NU/ A$HJ* gA삨ep$_N]Nu`BBB `NU/ $m?<NTO+@f5| м%@$_N]Nu5| %m* H?NTOJ@g* `NUH0$l`&R *P// NDPO$K fBL N]NuNU/ A)HB -P/NPO$@Jfp$_N]Nu$%m)J P`NUp0-/aXON]NuNUH0$l` mQg&J$R fpL N]Nu g&`)R *P// NPOp`NU/ 0-$@Jmm0-llJf9|p$_N]Nu0- l/0NXOJ gp`p`NU/-NrXOJfN|9@pN]Nup`NUH 8-Np0$@JDm llJf9|pL0N]Nu0*|f 9|p`p0-//- /N8O *f N9@p` `NUHxBNPO+@ gJlf -N]NuNp`NUHxHzN/NO ?<N TON]Nu^C NUJg lN?-NTON]NuNU/0-H+@Jg(x` ?NTORDlm0,//,NPOJg lNJg /,N~XOJg /,NnXOJg /,N^XO,x.)g/ K N*_`B_NsJf0Jg(0,H//,NfPO0,R@H  Z//,NPPO`NN"o,lNb /,lNNL,lN:N"o,lN,lN|N"o /,lN. /,lN o,lN oL"/,lNDN,l"o /NL,lN"o,lNL,lNN o,lNL !,lXN o,lXN o,lXN oL,lNX o,lN8 oL,lN0123456789abcdef 00000 @@@@@@@@@@@@@@@ @@@@@@@ @@@@@@ @@@@ * 4,l"o /NL,lN"o,lNL,lNN o,lNL#|<(-M&m$m `&mRSNvp,zN/- &mN`H,-&m8Hĸn&m<(-M&mB3`N](_ _ON/ (z/ *Of ,zNN](_Nu IZloaddevice failedfinddevice failed CONFehler beim Erffnen des Terminalsdos.libraryNNNNNTN$J@D`vp,zN/ (zNUGBS7|27|7|dB+| '| '|BB$'m BB"7|d&7|((7|*7|,7|.p,z>NG K,zHN4)@p,z"NJVG/ ,z NGE|W|p,zN/<|G, /" ,zN+@p,zNJVGB/ ,zN,-+F,-Nv+F&m&p,z~N/<p/-$," ,zxN)@p,zVNJVG/ ,z@N&mB&l'l&l'l$l&jV+ cNNF$l&jV| N](_ _XN/ (z/ *O$l&jV,JlNNFJ,g.p,zN,JlNN oNNx/ ,zN&lB&lBp,z%Ć3N/<0B$,&<" ,z~NBBN](_Nu/ (zN/ *Op,zHN/,G $ v",z>NN](_ _TNp,zN/ (zNU lf`;lp,zN/,G$ v",zN g<,MG`RlNv`r -e -b `Z`R - f> ll4<,MG `p,znN< a RlNv`` -f^<,޼mo>p,z8N<ap,z&N< ap,zN<aSlNv<,޼mf`` -fh<-RFNv?,;F<-Wn>p,zN<abp,zN< aPp,z&HeN<a>RmhT9m`>`6 ll,<,MG`p,z\N-aRlNv`L<,MGB3`N](_Nu/ (z&/ *O&z"&SJ+gD<,lfBlBlp,zNa`<,MG$m `RlNv`4p,zN/,&m $ v",zN g &m N](_ _XNp,zN/ (zNU&m BS&m+Kp,zrNHma8 - g -f `2`,,-&m 8Hĸn&m&m RSNvRdNO`,-&m 8Hĸn&mBN](_ _O N/ (z/ *O&z&SJ+g0p,zN/,t",zN4Jgp,zN'ap,zN/,G $ v",zNN](_ _TNp,zN/ (zvNU,-RNvgR&m +O $OSQ&zN&SJ+g0p,z>N/,t",z:N4Jgp,zNaBm,-8-Hĸn <-(-M&m J3`g RmNv`p,zN/,&m $ <-H&",zNN](_ _PNp,zN< aNu/ (z/ *O&z&SJ+gJgp,zzNaBJgp,z`N l,zlNN](_Nu/ (z@/ *Of,z2NBBp,z N2|,z$N)@&z&S)k|p,zNHzN,zN&z&SJ+gp,z(xzڈN$l&j$/+a9|*p,zNG/ $<",zN)@p,zNJVG$/ ,zvN)lBlBl<,MGB3``.p,zJN,zNN)@p,z4N,z8N)@N](_Nu ~\bhntzNNBN@NN@N<J`p,zN/ (zNUPNv lJ- g+|` +|p,zN/-/-" ,zN:+@JgJ&m'mp) `b,znN,zfNA&m@&m&)m,-PNv&m&`&mB` p,z&NN](_ _O N/ (z / *Op,zN/-/- B'a N](_ _PNp,zN/ (zNU&m ,QNv+FG+K+l,-gJg+m&m+S`Jg:&m$m$&mB+p,zvN"m&m/+ ,zdN.&m BN](_ _XNp,zFN/ (z8NUJ- g+|` +|p,zN/-",z N(QNv` p,zNN](_ _TNp,zN/ (zNUJ- g+|` +|p,zN/-",zN(QNv` p,zNN](_* _TNp,z~N/ (zpNU+lJg\|&m+/p,zPN,zHN,m,+m&m+SPNvp,z"NHma.` &m+S`N](_Nu/ (z/ *Of$,zNBp,zNHzR,zNN](_Nu(,$ NNBN@NN@N<J`p,zN/ (zNUPNv lJ- g+|` +|p,zN/-/-" ,zN:+@JgJ&m'mpLJߍ  8>Xb 4Y Loaderq t+ Jd ?<NjTOBN:XO)@ l ( f l+hgHyHxDNPO+@gHyHx$NPO+@gz m -м!@ m -м!@A"m#H m!| m -!@(/-/-NPOHlN XO m+hHx$/-NPOHxD/-N|PO)|@ -N]Nuconsole.deviceNU l)hx ,\)@Hz/,NbPOJ@fdHzuHlNrPO lBx l"l,i>"V"X l"l#P l l/,NXOHx/,NPOBgNTON]NuBorder c NU lJxf.NXHyHxNhPO)@f ?<NTOHz/,NPO ,\)@ l"h>,Q"l" lX"l" l!lx lB l"h>,QB l l/,NXOHzHlNLPO0< l"hH@B@H@H?HzHlNO HlHzrHlNO l"h.0),l"nH@B@H@H?HzFHlNO HlHz5HlNO BgNTON]NuBorder0y0x %d%su %d%st NU l0(HD+@ l0(HD+@/-/-/,NO l"h.0) H,l2.H+@ l"h.0)H,l2. H+@/-/-/,NO Hx NXON]NuNU)mHm/- HzNO qz,-(-n",-cNN&m J3hg RNv`p,zN/,&m $ &-",zNаWF`"p,zN/-/- ,zN|N](_ _PNp,zxN< a`Nu/ (z\/ *OJg8p,zRN/,&m $ v",zHN g &m `p,zN/- ,z$N|N](_ _XN/ (z/ *OJg>p,zN/,&m $ ,-RNv&",zN,-RNvWF`B,N](_ _PNp,zN/ (zNUp,zNHz/-/- HmHl,zNJmVFN](_ _PNp,zLN/ (z:NUp,z8N/-J` hp,zN/ (zNU,- lNN oNN?Bm<-Wn(<-(-M&m J3`f 0-H`8Rm/:hT,-RNv lNN oNN0H` p,z`NN](_ _PNp,zLN/ (z>NU,-RNvgR&m+O$OSQ|cNN&mJ3hf 0-H`^p,zN/-/-a;@,-8-Hĸn<-SFNv(-HƼn Jml pH`?-Bm<-Wn&<-(-M&mJ3`f pH`RmhTJ- g|cNN&msh`(|cNN&m3h ae zb_D,-8-HĜNvRNv lNN oNN?;m<-WnF<-(-M&mJ3`f pH`;@,-RNv lNN oNN;F mf ;m`Jml ``<-mov,-8-Hĸo;m[H<-SFNv?;m<-Wn<-(-M&m `RmhT,-8-Hĸn<-(-M&mB3`;mJmo,<-mNvSFNv;F,-8-Hĸo,- lNN oNN;F<-mlN<-mNv?;m<-Wm0<-(-M&m8-mNv$-I$m@`SmhT<-mNv8-Fo<-mNv;F`(,-8-Hĸl<-RFNv(-M&mB3`<-SFNv?Bm<-Wn0<-mNv(-M&m8-$-I$m @`RmhTN](_ _ONp,zN/ (zNUJmm Jm n`p,zN/-/-a;@<-ml \QJm o<-mNv8- Fm<-(-M&mB3``j<-m NvSFNv?;m<-Wn0<-(-M&m8-m Nv$-I$m@`RmhT<-m Nv(-M&mB3`N](_ _O Np,z*N/ (zNU,-RNvgR&m+O$OSQ,-8-HĸnJm o Jml|cNN&mB3h`DJmoN<-SFNv?Bm<-Wn4<-(-M&mJ3`f|cNN&mB3h`RmhT,-RNv lNN oNN;F<- mo;m ,-8-HĜNvRNv lNN oNN;F<- mo;m <- SFNv?Bm<-!WeWnJ<-(-M&m8-mNv$-I$m@`<-(-M&mJ3`f`(RmhT<- ml<- (-M&mB3`N](_ _ONp,znN/ (z`NU,-RNvgR&m+O$OSQJmm Jml pH`Bm;m<-mNv;Fp,zN/-/-a ;@<-ml;m<-mmH,-8-Hĸn<-(-M&mJ3`fpH``<-RFNv0H``&,-8-Hĸo<-RFNvDFNv0H`<-(-M&ms`J- g<-(-M&ms``@<-(-M&m3` ae zb_D- a"oe zb_FRmNvRmNv--c<-DFNv0H`>`,--d0-H`$`J-f pH``p,zNN](_ _ON/ (z~/ *Of ,zpNN](_Nu.* &]N(N$J`*p,zN/ (zNUB-&mBSp,zN/- &mN&m  g&m  bJ-g&m  fJ-g&m -f B-`fJ-f,&m "g&m 'f&m S|`4,-&m8Hĸn"&m R)E/ E/ B'a&_p`$0 `lp` p,zNN](_ _XN/ (z/ *O&m JSg4&m SfJ(g/ /9"k(,_Nb&_0 `N](_ _XN/ (zn/ *O/,aJ,g/9,_N|/9"l,_NN](_Nu/ (z2NU)H)@+I)G)|NuB|9|)m G , Y)FG, )FBB|/92|,_N)@BB,B,B,&y<+(g |`$&y<+(g |`|&lJWFJ,g2/9&lG\ K,_N/9&lG\ K,_N)@/,=aJgJ,g)l$l&j$/",zNa&l)k2E'J2)k*E'J*/ /</<" ,zN&_/ /-an&_/ B/<" ,zN&_'l2'l*` )|a ,` p,zlNN](_Nu/ (z\/ *O ll Rl` <a$<,MFG^'`<,MFG^Q`/ 8|&m N(_*OJ,gB,a|HlaHlaSlN](_ _XN/ (z/ *OJm m<- ln 9m `Bl<,MFG^.s`NuN](_ _TN/ (zNU+M&m)SX&m)SGX$m&| @  lNN:p oNN;@ mo,G KG"KG$KG,zNG)K`@A@G)sG/ /,BB'a<-FH)F?,aN](_Nu/ (z/ *OЏl <aN](_Nu/ (zNUJ-fN+MG$m'RX$m'RX$m&| 'm G/ /- BB'a?,ahN](_ _\N/ (z*NU+MG$m'RX$m'RX$m&| 'm GH/ /- BNNdRVJ `4/ (z/ *O&l$m RNvN](_ _XNp,zN/ (zNU&z&SJ+g.&l,+SNv lNN oNN0H`d`VBm&zP&S)kp,zBNHzrBHmHmHm,z0NJmgRmNv - d0-H` p,zNN](_Nup,zN/ (zNU&z&SJ+g&l$m+J<-HƼl/ p,zN<-MF$k$ r`"m,-RNv/ 316,zN&_$m BR,-$m 8Hĸn$mJg$m RRNvRdNO`/ p,zDN<-MF$k$/2`",z N&_`$mB$m BR`Jmf,- lNN oNN;F|&l8-Fo |&l;F<-(-M&mB3`)l<-SFNv?Bm<-Wn&RdNO<-(-M&m$l`RmhT`v&zn&S)kBmRmNvp,zVNHz/-/-/- Hm,zBN<-mg - d<-mg|cNN&mB3h&m BSN](_ _ON/ (z/ *O&z&SJ+g*&l<- HƼl<- MF$k$ 2``p` p,zNN](_ _TN/ (z/ *Ofj,zN,zN&zp&S)k&zd&SJ+g B`8p,zLN2|,z/ (zNU&mB&m  mm mo`*|&m 3-hW&m&mJg ;|`Bm,-8-Hĸo`<-&mx3`;DJmf`m0Jml` m o m eY$l`_m<-ml0&m,8-Ht8-H" /,zN, c``<-H&m" ,zN<-HІ&m&Rm`8&mJg$&m, c`&m,D&m&&m BN](_ _ON/ (zNU|&mB3h&m  mm mo`J-gJ l|`|FJ-g ,- D+F ;|<-G(- 4-H" /,zN,E`,- 8-H" ,zN +@ SmJ fJ-g<-G-``Rm|m(-HƼo`Bm,-R8-Hĸo ,-R;F<-mF ;F<-ܼml<-&m!nͣ`Rm` mn"<-&m8-E@`RmRm`<-DFSF;F,-8-Hĸo ,-;F<-ܼmn<-&m`Rm`,-8-Hĸn<-&mB3`&m BN](_ _ON/ (z/ *Of,zNGjE|WN](_Nu($  out>1in>dos.libraryNN NN N0NN.NNNp,zN/,&m $ ,-RNv&",z|N,-RNvWF`B,N](_ _PNp,zDN/ (z2NU,-RNvgR&m +O $OSQJgdB$rafiksonderheft Nur vom CLI aus benutzenSchaltet die Copperlist aus Syntax : WBCop ausSchaltet die Copperlist an [Farbnummer (0..3)]Syntax : WBCop an [Farbe (0..FFF)] [Differenz (+-0..F0)]ausArgument Fehler 3Argument Fehler 2Argument Fehler 1anNicht existente FarbeNur Farben 0-3Nicht existente Farbe Max 4096 (FFF) Farben* No Memory*Operator Failure. Press left mouse button to continue. NJ$$0%"*`Bp,zN/ (zNUGETC|;W6d||=E(C@| W7|>|@B+Lp,zXNBG K/<<" ,zbNJgN](_Nup,z(N/ (zNUp,zN,z0N.+@&mG,$m $N](_ _XNp,zN/ (zNUp,zN/- a&m Jgdp,zN/< /<" ,zN:+@$m &R+kJg&p,z|N&m k,zN&m+S``p,zTNaN](_ _XNp,zp,zNHmaJg p,zN/-?-?-?- aR`p,zNaN](_ _\N/ (zl/ *Of,z^N,zZN,z^N,zbN,zrN,znNp,z,NHl/<,zNNp,zN?</</,Hl,zNp,zN/</,Bg?</<Hz$B',zNJ@fp,zN,zN @op,zN?</</,Hl,zNp,zzN/</,HlHl?<Hl,zhNp,zNNJ,gJ,g|`|JWGn/ ,z$Np,zN?<(@ u/</,Hl,zNp,zN/</,HlHl?<Hl,zNp,zNJ,WG/ ,zNp,zN?</</,Hl,zNp,zN/</,HlHl?< Hl,ztNp,zZNJ,gJ,g|`|JWGV/ ,z0Np,z&N,, lNN oNN?,, lNN oNN?,, lNN oNN?a`p,zN?<?<Bga`4p,zN/</,Bg?</<HzB',zNJ@fp,zvNHl/<(,zNp,zZNHladJgp,z@N/< /<" ,z)4,B4N:)@JgZp,zN"l?<?<20,zNp,zN"l,zN&l'lp,zN,zNz`p,zNa`2p,zN/<8Hz|,zNp,zN/<HzJ,zNp,zpN,zNp,z^N/<Hz,zhNp,zBN,zVNp,z0N/<Hz,z:Np,zN,z(Np,zN/<Hzp,z Np,zN,zNp,zN/<Hz(,zNp,zN,zNp,zN/<3Hz,zNp,zN,zNN](_Nu*)P    P$SystemError(%d)intuition.libraryberlauf (lang)Bereichsfehler (lang)berlauf (TRAPV)Bereichsfehler (CHK)Division durch NullUngltige InstruktionAddress FehlerUngltiger Aufruf von Arts.CallSTAPEL BERLAUFFunktion ohne RETURN beendetUngltiger CASE IndexProgrammiertes HALTFehler beim ffnen derSpeichermangel^C (Benutzer Unterbruch)Prozessor Trap (%d)Modula-2 Laufzeitfehler debug wei +>uqter Modula-2 BreakPointModula-2 Assert abbrechen dos.libraryNbN xNBN"NvNNN NN NLNNNN N N Nf>`/ (z/ *OG)KGz)KGT)KG<)KG)KG)KG)KG)KG)KG)KGl)KGT)KN](_Nu/ (zlNU/9/< /<" ,_N:+@JVG,/ a&m'm $m&7lB+ $m$N](_ _PN/ (zNU&m+S&m,+ f(&m$m$/9"m/< ,_N ,\=.`b&mJg"$m&R,+ g$m&R$m$`&mJg.&m+S$m&R$m$/9"m/< ,_N.N](_ _PN/ (zRNU&m JgB$m &R<+lm0&m +S$m &R$m $/9"m/< ,_N.`N](_ _XN/ (zNU+lJg&m+S/ $kN&_`N](_Nu/ (zNU+lJg&mJ+ g &m+S` -` p,zNN](_Nu/ (z|NUa+@Jg&m| / $kN&_B+ N](_Nu`") px(jhNJfr <(j(Npx(jN`G" px(j$N")JgrN")J g") px(jN#Alp|(jN#ApJlfr <(j(N <(jN")l <(jN <(jN#Attg" <(jN <I,NJf` <(jN")p <(jN")J f $"(`DJg(")#At n"p$(jNrҩ`` p (jNF""JfJf p(jNrN *** BREAK    ? %C!Invalid response - try again : %C'B=B 1RĚJg6B$t#BJfG" p4I`Np4(jN#A`p,(jN#Ap,(j,NtEfr#A")p,(j,NtNfr #A` r;g`t gVv=gLJg$x؉&$) ")p,INJfrNp,(jN#Ar g tfp,(jNJgrNJfr=fp,(jNrNrNrNNo K directiveKeyword too long substwr*#pXRlrN")ҩ")") !rNNqsubstwr*|0X#Fr#An6$ԁv0(() $)"&)p$INJfrNrҩ`rN$substrdB_.dnex`r%Ad``r#A`V")ҩt0G" <(j(N`.")ҩt0" <(j,NtHgvNg`R")t0l~Jdg0Jg(G" <(j$Nr%Ax <(jPNJg <IN`r%Ah <(jN#AtgdAq.. <(jN <Ix#D t"N#A$) rNV#At") NJf ")`rҩҩ#A$)&)$GD" p$(j(N")S#Ar#AnDґtԁr0($GL" p,(j(NrҩtNJf r p,(jNrҩ`#ir#Anr #+p,(jNrҩ`")S#Ar#An8ґtԁr0(#A t nvl`r.p0(jNrҩ`p$(jNN%X4: %X2tidyup J\g"*\p (jNp (jNJ`g"*`p (jNp (jN"*xp (jNNNq$TN & H **BREAK typelinJdg$*hG|" p(j(Np(jN"tgrp(jNJgr p(jNrtgFN"p(jNr gt gv fRhrN%I5 typehexBr ҉#A$<hԉ#Bd#Bd%AlBtv%Cpr#A|tnZ" <INJf&&)$)|");*2",ҩ#p"ҩt0")ҩv0#B #C$`Vrҩ <4IDN")$ <4IDN`Nrҩ <4IDNJ$g")$ <4IDN` ") t#gv%gx(gz|g`R",lF$)v0(n", NJfrNR")ҩt0)B,#lBB #ir#A nҬ#p$"ҩ$t0#B(`J`prҩ$$ԁr0(#A(",,(fN")ҩ$t0" <8IDN`,")(t#gv%gx'gz(g|?g~|g`rҩ `X`:NqputxEkVRfXJB:, ,   t B    j F  ^ F  t ^l Pn 2 $8~intuition.libraryicon.libraryKEYMAPNo KEYMAP specified in icons TOOxF! L TYPESe.g. Enter "KEYMAP=usa" in Info menuInternal system errorCannot open icon.libraryUsage: %s keymap.resourceCannot open keymap.resourceThis program requires at least 1.2 romsconsole.deviceInternal system errorCannot open console.deviceInternal system errorCannot allocate a signalDEVS:keymaps/DEVS:keymaps/Cannot open keymap file: topaz.fontxGy}$@CancelH ldP84H:(o o"oE:Ot&O,yNpJWFg/HoHTNO OL\NuNu:/$/Ho //9NO $NuH0,yLNL@ Nu/,yN,_Nu/,yN,_Nu/,y"/Nj,_Nu 0@U/,yLN:,_Nux H /,y"o / N.,_Nu/,yLN,_Nu/,yLN,_Nu/,y"oN,_Nu/,y /N,_Nu/,y /N,_Nu/,yLN,_Nu/,y oN,_Nu/,y"oNb,_Nu/,y oL "/ND,_Nu/,y"oN>,_Nu/,y"oN8,_Nu/,y"o / N,_Nu/,y"o / N,_Nu4Ldx(@/,y oN,_Nu/,y oN,_Nu/,yLN,_Nux labm, H02,y o"o$o &o$ /("/,$/0&/4NLL NuH:(o o"oE:Ot&O,yNpJWFg/HoHTNO OL\NuNu:/$/Ho //9NO $NuH0,yLNL@ Nu/,yN,_Nu/,yN,_Nu/,y"/Nj,_Nu 0@U/,yLN:,_Nu}Jl@~BB <$(jN%At <$(jN%ABpBt<%BXv>%C\x$%D`z.%Ed%i%i\x%i,|%it" <$(jppARy! xfs(fx`P.8dɟtv(8P䘕Ah`QS1b'# F "G# v`Xx <d(T8< PHc@Pb@!y@|vx$1@dFtQ@\hq<'C3C<^@ F aCv#}Cw` ACwh Fц`(g @c v'aBA1L|p8LP>xqa1;%{ s@T@gPyFX r | @ "ȥ}">ᇳ9y I@w8b`8) Ɉ$?S@TR~+|O 1o~Utwz w뻻;G}e7U@q@epř/*AtK ?~I|w~?ⲫ㡿]W"Å}|`T Pn am{۞?ЮE 韚B(<_}hHrH¯ ںP}tm(j꭪着민=wWV]}hBE zFUnUGf}TUT}'@# mh((@D1@|@!  P?P6`)C(n)h((@D1@|@!  P?P6bC " 00Hp6XL7@#D<`@!Pp0aBC? (0aS<'>tv(8P䘕Ah`QS1b'# F "G# v`Xx <d(T8< PHc@Pb@!y@|vx$1@dFvI"!4") 0#DB`(") ҩt0"&0֩8R")l$)v0(#CB`(")ҩt0"&0֩8R")lNNq%N> SYS:$l#ip#i tJ@fr`r <(jN <(jN#Ax#Q|")T$)X&)\()`pT(jNJf$),G" pT(j(NrpT(jNJDg",d^LF|k!xUx/$/Jg* 9gp9/NXHyNXJg$Jg/9NX/9NX/9N/NP$Nu"/ /#h#THxԥp  L+;ڨu&CpB4dC ?9N" Ey% 9@ Έ?A Fp@  S!!LD,$ld@H(`hbt_Ƞ3C<DTx 8X h (H p0PP.DdAD !d@"A`D2 "2  @C"Ȃ A0LD@a A#ZfbXHH(00PXP@@  8  8 /ڧˣ````l!+jj.!1 )=,&F"-zl>LFLL&L fFf&-zl>&̦F&f2-zl>,&,ƔVFV&VfVx ⼶릭ؘ٘XX/ڧˣ L,l ymSM[e98t`t?98X9X89/ڧ|W=tբ  Y Y 9 8/ڧ FFLFF,FFlFFFF0>+jhdlbjfnaihlkc⼶0000ppýD2222rr#Thdlbjfnaihfdflfbflq3`pH(D$dTL,l<"bRC#cS3s K+k[;{G'gW7wO/F&fV6vN J:Zrb.zNx tv!PBxXA(ԃlG 9J * 3X &B3s0 ,Q:`v @p+D&(R~ B~d 13 Á@F  C`0 ?@`Q@$ @PhtajmftibQ% GY@"(*PP  @@'EA "!ab1 ( 4#HiV@@' Tj AHH]0 d!`fl`vl`v`n`~`~`a`e\`e\`u\`m`m`}`c<`c|`g|`w|`w`o```` `d B`d B`t B`l `l `| `b20/(P@FAV @. cBbt]Ah4t (3p (7p (0 (4tbt_ (2 (6 /@ A*@ (0Baf?xp?p?p?p?~40s`"pk J`@4+`"@p<@"3fa!h @"   a $YND@P  A_R,SFP@,  *t P2`>@CdR" LQ@$r `9I @"As6!"` R Ú  @@,ԱGA`(2ŕa =* \AHb-`@u/p  ÀbāU@;b:P w0Bs*BI tc#+&4q <  `YHp XBP(8ψ`a0 s&!x9*̈`aD02"C`A"    \H- v`{B!ND urSx0˓d+DQAv!y 'C8%ٔ9aC@AA \0 '_rD20@#;@8x #F@#kP>XĚP1P*5frbP;"610d(̀A0ã("=0qc"!C 6; N"&D1b#DC(,\(<r?CPGL #wLj<C1kcC<t!#@/p#V71#wv:ptd'qWǀAłP?&WIS_q{L?vVHlABA{@P>oWŎAogss{؇M??0vAqRq*+TE;x vK?sbnn@5wwWp0pNq8:(ȡ~U1 ƶ9۷ű.AI[T(* qNM `fr/ Aۿ=Yx0 M05R%uEws0UuUpAc'8 $h((@D1@|@!  P?P6bCO " 0bAp C "mtO&-h((@D1@|@! ppA߀);A0pDPAP( O( 0 tO4;<8€ِ( W` o(&d@LP?o}@ac@0( `P^(- > ?; =; bdN!( vcɊC/21q1a̠@``|&8YUC|&D)AR8? 4303xTp5AHLM,] w ! EU&AP&3W!` rFfaȦ9^,"4g@ x$DxZ0pJ V ^BPDA[`uP1h;eІ1dxxPH 7T`fgsB  T\ +l@<4=ie) P`D80j504 A0<T @``@x< O@ B2P 0 @ÀUGXH7A:A0!xl(A /b̀`{J["Hb the=wp(h `4P6 `~ 5 BP~e8)p1 byHX! j@ s$%!  Ġb0-  T l*Y2 `WVAAT`B9z@ n@n@bN(AO@:Ah0(!a <W 38CG aV ^; dl.d0m(\ @`'`0(103 K"8 A P e } c@p06%ոA$K A8p A$ A$ F`P1  {`Ahti"*`h0@^( @ր: QX@l @P$@!h10`D5Ҕߨ``ʆ@ ! 0#H8`hGpfIt 7hl9^8(83 nb,D !E00:$Ah$%̠(hDi/`4-!+H@ iU$I4xB YVB-$B!ƃ0 6 @)LT0gN *U(kRkpq G`C@2X@@ 9)ă4H&@"AD!8A$d;v):&Ӡ}:PO0z  h(Xܶ7J)AAh*#  2p;h8PB @"Aϑx֠Z ("AŒA#H Peq,ɀ7 /ŁB A;]4`.j Y$C E&l<ZD gI ȗM&3pAU- d@@5 Ba4 BA(T.aAH0X8Xa밢"3HNAKH RlC]!$H  F !t m1ڼ`4p)Xs^aД𪎰`@vT`@<rĬe @B Zoi 0C 02X 00#!u  4M.CHĀw@\$8 „(@ @JY@'sA4J 4@ Qx@7'h6" @&Cf!N p/?X6{4a@@s/75p0:10P @ ( hƉ@DNC0 0<Kw9 X !*` GV@`< Ef@0,@PFx01Z\DA"oEP[X0 x6`1@L 7'~Ǣ01a4{T@:C6p/4-4ht o ~D w`&Ѥ f~@vĢ  AnTL` P ; $fT1 h@@A!@J<¦4@ɡ A]Ь0`q*A`òA@D1``!  (ӊW 0!УhT0y zDРrNj) \  E kP7d@ppcP0S` G2 @C`| 0zH`d 7l@ XL`m2|@Ah3@x1`l)+ l@f ,ChSv@(Ls nBX i` GȪKK H_ A aF/ whH5|% P01%(ɀej@iX 0t ZxRhB$E>$T74(!(& D4B&]'( R0$$Wf,NITz!86Q{-VРT (  @SF&@!O`YG4RNA 1JIf (Z@3IAm:Ed0& B/ut(` k/0@BA Bb]xe׀X @׀X@X @"Ar>EpH\_ C0Gh n(O@׀dR h PPeĂ`?A@U@ @  ]|{hPromptqz|S ~O>O(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F >09PROMPT start r҉"v$G" pP(j8NJfG" pP(j$NN"JfG$ !"$0vz凣 0(#CDr#AHDn($&0(ցx08&*0ց8rҩH`NNqPROMPTParameters no good for PROMPT > $HGFEDVUTSySetmapq} ~:9NMLKJI~Eq}I q+OO(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F =<;C )dirqC(OO(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F $1dos.library!exec.library!,graphics.library!intuition.library!,\ Von Frank Schfer fr Kickstart | G9x TResetqT1&3@!NMF'N CpM 4YLoaderq 9uuH,yC|Nh#gX,@A09By3"<ҀBBN",y"yNbJyg #N@LBNudos.libraryST1_2/ST-V1_2ST3A/ST-V3A ST4A/ST-V4A ST6/ST-V6 ST1_8/ST-V1_8TNM1/TNM-V1 PRESET-ED ST2/ST-V2 ST3B/ST-V3B ST4B/ST-V4B AFL1/AFL-V1 ST9/ST-V9 DOC2/DOC-V2 E S/INSTRUCT W  `Borderq N)NNUBHzNVPO)@f ?<NTONZ)@f ?<NTO mf4Hzr m /(N POJ@fNtHz[ m /(NPOJ@fNHzeHzAN POHzaN XOHzyN XOBgNTON]Nuintuition.libraryonoff1;33mBorder0;3;31m Version %s1.1 05/870m by 4mTorsten Juergeleit0m 7;42mUsage : border [on] [off]0;40m NUJ>L.=6EGACAAAAAAAAAAAAAA@~`~`!!1@@2##3$$4%%5^^6&&7**8((9))0_-_-+=+=|\|\0QqWwEeRrTtYyUuIiOoPp{[{[}]}]123AaSsDdFfGgHhJjKkLl:;:;"'"'456>.>.?/?/.789 System-ConfigurationA8l 5 `0K޴!JJ(J/z!J=JJK޴!a3 ,CBM_MPS1000P@HCBM_MPS1000rKEYMAPSɻO \DOC2pHc DOC-V2(ZY)S Track2.inshtcNote: This SoundTracker is based on the MasterSoundTracker V1.0 by TIP/TNM D.O.C-SoundTracker II - A Quick Clarification. ---------------------------------------------- Update : August-1988. Update done by : UNKNOWN of DOCTOR MABUSE ORGASM CRACKINGS (D.O.C) INSTRUCTIONS : DOCTOR MABUSE and UNKNOWN of D.O.C / Based on J.C.-Instruct. ----------------------------------------------------------------------------- Modifications by D.O.C: -----------------------  }@7!@7!#Baa-a#-JJg,y <X"yJN.a+^a aLa0apaa$a patpgc  HAPPY CRACKING SERVICE  Released presents 18-09-88 ~~~~~~~~ >>>>> SOUNDTRACKER INSTRUCTIONS <<<<< ----------------------------------------------------------------------------- 'F1' - SoundTrack 1.2 (K.O.) 'F2' -u?startup-sequencesm LOADERNSpzST1_2p O*_MLKJIHGX\[ZY Play1_2.SY1 ; Replay-routine for Soundtracker v1.0 ; Copyright 8/1987 by Karsten Obarski ; 3000 Hannover 61 Anderter Strase 1 ; Tel.: 0511/584293 START: JSR REPLAY_INIT ;nur einmal initialisieren JSR REPLAY_ENABLE ;starten am anfang vom song main: move.l #12000,d0 wait: dbra d0,wait JSR REPLAY_SONG ;irq / loop einsprung (immer) btst #6,$bfe001 bne main JSR REPLAY_DISABLE ;zum zwischendurch anhalten ;jetzt entweder anderen programteil abarbeiten und ;danach wieder REPLAY_ENAB+0/.-,+*)('&;:987654321FEDCBA@?>=<ONQPQ(8 Track1_2.insP%Cc ************************************************************************* * * * Deutsche Dokumentation des Soundtrackers V1.2 * * Januar '88 * * * ************************************************************************* Kapit=z7N     %$#"! sST-V1_2 VfTTNNdN NLaaaa song)fN"p9g ` y1| 1|1|f Nu y1|1|1|` Nu y1| 1| 1|` Nu y1|[1|I1| Nu y1| Z1|(1| Nu y1| 1| 1| "<NQ`T )gNu 9U)f3)NrBy)Nu 9V)f3)NrBy)Nu 9W)f3 )NrBy)Nu 9X)f30)NrBy)Nu 9Y)f3?)NrBy)Nu 9`)gNu yt| ST1_8pWX9 Track1_8.insތ5c ************************************************************************* * * * Deutsche Dokumentation des Soundtrackers V1.3 * * Februar '88 * * * ************************************************************************* KapiO*m Play1_8.SC************************************************* * testprog for replay-routine * jump = start * breakpoint = end ************************************************* org $50000 load $50000 ************************************************* START: bsr START_MUZAK main: btst #6,$bfe001 bne.s main bsr STOP_MUZAK clr.l d0 END: rts ; ; ; "z@d ST-V1_8 MFowaNH,xKA P"PXXHaL/ Q"H N.&WP ."<N:+@ P S"m "XT"Q/ ,S&m (KJ"< XgN:(XQ&_BB kg kg kg kg kNqJBRn"_Q N.C m X"RSg"P (" (X#@P`BC m PP""m N.LNua(J  K"m ""qPN`HaP`@JgRzNuJ m "pP g$" m (pPS L$I""$Q``=qST2p(u`v-Z Track2.insy1c SoundTracker V2.0 - A Quick Clarification. ------------------------------------------ Copyrights : The Jungle Command. Coding : The Exterminator. Release Date : 1-March-1988. History : SoundTracker V2.0 is based on the original V1.21 version by Karsten Obarski. Modifications : Modulation. ------------- Enhanced portamento. Volume changing during play. Volume sliding up/down during play. Standard USA keymap. Playroutine for use in demos etz onmlk~}|{zyxw0zST-V2B  ACF "*$I fae P` `r00@ S03ՠ@ `:0`bJ/jG6 f*P@!h10`D5Ҕ$},? w (01ə`*yb0A@8(83 nbPJH~  fD A!Hm$̈+ СrI!M$Ba$IЈkÀ$@-r o k+Ԩa@ΝA! Ud 5@@`?%5!b8 ȸ@`0! OY, @נ FS(hMDN (|܆A Ã!܁H;9K(6=:=Cv 4 ,E[ ZVD̂l$ABV y07 lT |Ƶ 8(00n!@e"A0A(B @Ӣ`0ր A: BY^DP6t8 b  X` h@ n> D5 `N H/0`xF(8eR@@@$KN @ l dZF EP9c2,P20 %pRăFD=jebh4@T2 (&@t`kV@jbid'H A@b+0A`ap  WVt H ,04/d(B`R  0Wx@8gCN@  df5( |Pf`l*p `fہ46U@7Y_BLx1 b(\"PbW|0K!d2@@7 29$,$)E9' AKF P< CRR6 *4ȄA#  ϨZx(!!Hcl jB-`H4 y@ W>@ $4 #`DN@ ֠"'D @ h((@r Rl$Ct)2`~tB  B XPX3`c8 m ``  P0 :C[N `*4P `` t w("C`p/$ WS<CACЏO 0X`jA@#~3 a=hH7 z<d( b z(?p13`d?I0W s:(@^@ @' x Q k`3a~7;9`fPC7P^ @!(@08e E0`s (0b 53 p0 w)EH<  88h P1qd f(28dPEI\B P,; Z$Cp7 ` D @ZD k ȗMAS ``l@0D@  Z ;h  DB&<]@aMPHD QŤp OP6f aQI&@ 1,H6Dx6Dv30  @#0@ėht%<*1@ܧ1Z@P,|Pc30- @a`V@ c@`d`@aZh|00v F$%.cQ% \]`l& a( ,N{;sP+h@ hx$ (pH&a̡ @jT 9T<0 g`5m@X X0 jJX k p ēxS%D!pLk8 $00@rT~`ʇce6d?c @hM`x=jd- hB@^"%C`@, 0{@ t 3x Z!pH8 fQl Z0 Y2 4 7@ *(0@0  !*` GV@ E@İ(Pt zE 2ZYeXD@̀, (P6`B2/&,AcL>i$P71Āa4{T@1 k8 q Q5F R3 6 zPP p3(A@$H7`fPĂD x<*cD>8P6   "eH,FH7 h/H !Ai`qJ0sZ/f6Zx `ÀAfo#!iSk&Ppp0X%T66AP$4AH@0 pu J0  w9{ըb8E$ Ab`(p! @q1a0I@"(rJ ʠ e_< @Ԁ<A Q<  @b3.@4)l b7h!2y-+`Z*@ 0lȼ4E*x ! 2e M! ^& PCBT2 BĊo%H p&A!]'( R0$$U2,NITz-!8!} Z@@(P)}&!L(BꐗAԾpi 4@b` P"fp0JA`u>(`6L@p^XP<0_#r"`ʼn`a$  A } [ihgfedcba`utsrqp~Play2.SpzQ ; Replay-routine for Soundtracker v2.0 ; Coded by The Exterminator (The Jungle Command) mt_speed=$1f4 bsr mt_init move.w #$4000,$dff09a move.l $00006c,mt_oldirq move.l #mt_newirq,$00006c move.w #$c000,$dff09a mt_wait: btst #6,$bfe001 bne.s mt_wait move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq,$00006c move.w #$c000,$dff09a clr.l d0 rts mt_init: move.l #$00000,mt_sample1 move.l #$00000,mt_sample2 move.l #$00000,mt_sample3 move.l #$00000,mt_samplaST3Apbw?TSRQPONMLKJ_^]\[ZYXWVUj.Y Track3a.insjgc SoundTracker V3.0 - A Quick Clarification. ------------------------------------------ Written By : Karsten Obarski First Editor : The Exterminator. Second Editor: IL SCURO! Release Date : 13-March-1988. History : SoundTracker V3.0 is based on the original V1.21 version by Karsten Obarski. Later edited by the Exterminator, and at last completed by IL SCURO. Modifications : TEMPO setting during play! ------------- Modulation. Enhanced portament+{a;:987654EDCBA@IHGF$$Play3a.SF ; Replay-routine for Soundtracker v3.0 ; Coded by Il Scuro j: bsr mt_init move.w #$4000,$dff09a move.l $00006c,mt_oldirq move.l #mt_newirq,$00006c move.w #$c000,$dff09a mouse: btst #6,$bfe001 bne.s mouse move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq,$00006c move.w #$c000,$dff09a rts *------------------------------------------------------------------ mt_init: move.l #instr01,mt_sample1 move.l #instr02,mt_sample2 move.l #instr03,mt_sample3 move.l #ţxڕ&%$#"! 3210/.-,+*)<>=,ST-V3a=YQ& # #N N |,"|F$`J 3raJBgT|f$fadr aJBfra`ra^BSBrgQQ` DQQڳl|ravrJBg\v|g>v|g(raf|g|gZB6` raP^B6`raF6`rfa0er`rfa"d rfaer aSC2(QmNu DNuSABgQNu DQNuPROGLM >dm(:%3Ȋx@po.9muX-F0 ,cb m%K Acj @Q,kaeEF*SHDa~aaDj+>AGJ]ST3Bpȣx('.xST-V3bɒ5  ACF "*$I faeC (0@"C] 01"`~ y B BU Pm@!] :PfȀ)F! P r` 01TA?9$@uPuc:Г"ÑzI@p=@P bUaP?8h5 h #M84)"+0"+p2tdgBB oH0@@HI`  0 , 0` `2X0@ ` @*n}U !`Ё@!,*E`@K AyX4 ``@&  9%0J_!D0B @aBR @^JpR"b!(8Т˒7~ Hdӊ0Ԛ ACa)@ʁ 6 0@?G0GT)TR ~A` 2ht ۘc0r $x(Cd`f`;ޮѸ @(@p)"8K  #@@<*҅PnR `ep$X" vSd Xv b'$b*05@394A@@.6 A4XĨ0<職H0vPp70<H00< h 4<D\p6`$E xP˹\@C%u  n *$@BH  CFH6 @P@B  1f@@P0 =-L < <`i0`wF@ ')?M 5Ӥ P$. dB& @D@!@j$O:h+tR`P4K!) @6Pd>%rWhP7!|*fh P̭D 1WL @(9z@ nr@n@ @ @ }b2 & A@ @@a A A?`x`0tP0` (d3@0m(\ @`'`0(103 K,@8 A P m  c@p06x7`tpH>7\ub.~Pf .Rc.z.fP.8P> P` `r00@ S03ՠ@ `:0`bJ/jG6A̼ f*P@!h10`D5Ҕ$},? w (01*yb A8C!9xlE@ KH~  fD A!@s(I=eWXCI h0  H.C]`0@0a"l037!x\]^@3 t R& 䦤,Gy p7 %A6Bhq  P6o8A$pd;0Bv)zp}zPn@Ƃ`pT Ҟ`hY`$h(R#  2p6@TxZX#P(H% u A6BA!3D<Dgœ>A@٘$@aD!$H  F !ڼ`4p)Xs^aД𪎰`@T`@<rj5 @B"P!X ׭L !ir) Dt1qvC@X(JP @ra;@ T *@qy"͇2aAP0H@^ Pյb84"`Äy(`\5.#| @L Op H0Hd y 04 oH*P #e@?pS ` t` ʹ "xa=!!J&9`: 0 :!f#NK@@P @Ҭ.NxDܪ؂W,.p68&L ,(ǁzåoA!S*OaB̹Gy/ @†y!@ V A./l Q* aq6d?c @hM`x=jd- hB@^"%C`@, 0{@ t 3x!p n o+dED0 h0 d0Z/˜0 p@0 $ 'L/1[e f`P- P C0 38P}je` >F!x60@ a KRd i2pZD<5@ފo}(Q8PL@Ɛ4-4_D F4H .؀D aBCH1 boY ݂AeC  \"(j,hrB@ .hV0P(Xi m  'W"j00@ q g  i+ÆhŘhQ4*S   =L! @ ` P!@hT "@5(*8 jVaPezmxHR21ń%1(3*|P6(RX9(2C+!F&@d* X" Ц 4"P @@ xr*hR i|,s`"qpT60E4,x ؃ @ P@@4W!"(p`D t@oEtH`HTȰC (0@"Cb}4$_ Track4b.insGc SoundTracker IV - A Quick Clarification. ---------------------------------------- Update : 9-April-1988. Copyrights : Doctor Mabuse Orgasm Crackings. Coding : Unknown. ----------------------------------------------------- INSTRUCTIONS : The JUNGLE COMMAND / Modified by D.O.C (+ corrected) Version II : (look upper line) / exterminator ----------------------------------------------------- EQUALIZER by (look at coding) of D.O.C SPEED-CONTROL build in by (look up| -ST6pyon~}|{zyaPlay6.S ; Replay-routine for Soundtracker v6.0 ; Coded by Unknown of D.O.C. mt_speed=$1f4 bsr.s mt_init move.w #$4000,$dff09a move.l $00006c,mt_oldirq+2 move.l #mt_newirq,$00006c move.w #$c000,$dff09a mt_wait: btst #6,$bfe001 bne.s mt_wait move.w #$000f,$dff096 move.w #$4000,$dff09a move.l mt_oldirq+2,$00006c move.w #$c000,$dff09a clr.l d0 rts mt_init: move.l #mt_snd1,mt_sample1 move.l #mt_snd2,mt_sample2 move.l #mt_snd3,mt_sample3 move.l #mt_snd4,mt_sample4 move.l #mt_snd5,mt_sampvB]\[ZYXmlkjihgfedcvutsrqpxw3 ST-V6wz  ACF "*$I faeC (0@"C(yLKJIHGFEDCBWVUTSRQPONMba`_^5  Track6.ins^N\c SoundTracker VI - A Quick Clarification. ---------------------------------------- Update : 20-April-1988. Copyrights : Doctor Mabuse Orgasm Crackings. Coding : Unknown. ----------------------------------------------------- INSTRUCTIONS : The JUNGLE COMMAND / Modified by D.O.C (+ corrected) Version II : (look upper line) / exterminator ----------------------------------------------------- EQUALIZER by (look at coding) of D.O.C SPEED-CONTROL build in by (look up*ST9p(ц43210/.-,A@?>=<;:987' i Track9.ins76c SoundTracker IX - A Quick Clarification. ---------------------------------------- Update : Juli-1988. Update done by : UNKNOWN of DOCTOR MABUSE ORGASM CRACKINGS (D.O.C) INSTRUCTIONS : DOCTOR MABUSE of D.O.C / Based on J.C.-Instruct. for old ST. ----------------------------------------------------- Modifications by D.O.C !!: -------------------------- Enhanced portamento. Volume changing during play. Filter control dursI +*)('&%$#"!65:<ST-V95VACI "*$I fae@:GlA2?c+APXxIѠwR& @8  60pX+g8 "`9 8R83 JP`T@" c"MlaicQ@'q; \'!d@0P8 B @Mx+2#L$8^وtt2%C,P ٗ8@ A4_jdKvB0` ؀0dh1G,q HY$h`RǒLLE'>BK0!0(0+ʹC4e.pD9Cps+CU6 #A/t90$  2EsF8_ 40400 $ 7``o@|  [f/*8XhH0P 90bÕZ@`n =)ɶ:* ^lFIt--@ ievP@0@.  '8 'B+ B @q !` l mH` b c` dh8 L"%9*0WJ Իe>j $`IpAXp!4&kV6N3cLs 2"4 0>N!H&a?4?`,*9AJP@3X"//&IpvO8WM 0 -+KV@`}Ї0\X  ppt KH01I v  J0$<2Gl~))F+Ń 0 :F0ă%a`N@x/Pb( S H$h7`D>0Axf}S `\:,1@@'@ @=@@)@@6@@"@ @8@/3%>*4!;-0& <)35]r>uz `hO`@L@ S@mH9PЌI@*:%$t\BPh0<28B |1#6'pH)0!# { JAʂP` A3[6@_-  ; PDA?o p;σ@Q``=0`l0hPhrDU` a` j`(1`xfN(XP02S2p`P G|'h( N 89p  @  I, 9(E,7P1?t2^\` c` i` fPL ص)s)p0(`g L@hKD a/?P3" 0(D @Q"M*>]S(Xʻ A`# 0耀<AEDaԈOx;OCoo JCD'  Y<-J h- Vx8 @!}x" 0Vp%7 x 0 nU[<n@\@@" 8.dGE@dB ll@M +@В@@ \ B%I~0F 3 t *LP|NH@홡  ` .a.`S>ТOSc3B l `A@TqAhPA`]0=8.`o8`^" C,& &&a "[ `hcL8`i8P>f'LApJLBTA@6 ؂ ) ?2؈1j _(h4'%6?8 DB$PeP@P%CKsTdM` 0gZ.g{;sgz`x|&xfE pC!:鉥-d>#>}\€n9*y1;A Q@̬?a!NP8X`!}.rb` 0PS  @q@Ā-ȐP9HI"AP0' 2Bru\R J ~ 7  -C&xpP 4J h3 `P0cqP$(3 P W' nYuR2_V‐@H" PaABA  0 DCPXŔ8P*J(|s Z Y lĂP ?`8UfaX `X `X0zr ` r {Rƒڂ@$VcA-A`X+   )0LȔ,I)Ns^@AuBxƒjOƒ+ƒ(ၶじAY3~@Sa.PVP4F Y EF`h@ PC@@" PE@D hqRa  uZ3&A:AO(  aH|!#ԃx`ae X hk ં0zc@P$ e$g@$ j$hAPn`|"X n@X,(00, a* (0 0U(#J| ~UK*cT Q ! ƤAH  (%) # Track1.ins wc Master Soundtracker V1.0 - A Little Instruction. ------------------------------------------------ Update : Juli-1988. Update done by : TIP of THE NEW MASTERS INSTRUCTIONS : TIP of TNM / Based on J.C. / DOC-Instruct for older ST's. ----------------------------------------------------- Modifications by TNM !!: ------------------------ BackSpace-Repeat Filter control during play! (some A500+A2000) 4 Channel Equalizer with on/off Function Faster printroutine Faster  s PLSTp %st-01:st-02:accgit H@st-02:accordion @st-02:acopianon@st-02:aehV@st-02:ahhvox@st-02:alcom @st-01:alien<@st-01:aligatorF@st-02:aloog "@st-01:analogstring0@ st-01:asia@ yst-02:baba@st-02:balancet@st-01:bassdrum1&@st-01:bassdrum2@st-01:ba^%R{zyxwvutsr~}2 PRESET-EDpSK T T#3#a+a,Ta#a a+,a#`a"aa ZaZa)a)J##~a`" 9a)3g 9c)3g4Nu yhg" |^09h"9zpf"Uyh` yhgTyh` |^09h3| 9z"<Za*By)2Nu zf#zNu zf#zNu zf#zNu !zf# zNu &zf #%zNust-01: 0000 0000 0000>6%43210EDCBA@?>=<;PONMLKJIHGF[ZYXWVUTSRQfedcba`_^]\qponmlkjihg|u ^STdatap|0000lllll~|&F|0`00000T8|8T|0`|00 0`||8x88||~<<l ~|||||~0000` 0 xx`00?/.-,+*)('&%98765:' Trackp:ύ SoundTracker VI - A Quick Clarification. ---------------------------------------- Update : Juli-1988. Update done by : UNKNOWN of DOCTOR MABUSE ORGASM CRACKINGS (D.O.C) INSTRUCTIONS : DOCTOR MABUSE of D.O.C / Based on J.C.-Instruct. for old ST. ----------------------------------------------------- Modifications by D.O.C !!: -------------------------- Enhanced portamento. Volume changing during play. Filter control durinC$#"! :Xmadore your emulator+_80-V1 ST2/ST-V2 ST1_8/ST-V1_8ST3A/ST-V3A ST9/ST-V9 ST3B/ST-V3B TNM1/TNM-V1 ST4A/ST-V4A DOC2/DOC-V2 ST4B/ST-V4B PRESET-ED ST6/ST-V6 E S/INSTRUCT  80V3A ST4A/ST-V4A ST6/ST-V6 ST1_8/ST-V1_8TNM1/TNM-V1 PRESET-ED ST2/ST-V2 ST3B/ST-V3B ST4B/ST-V4B AFL1/AFL-V1 ST9/ST-V9 DOC2/DOC-V2 E S/INSTRUCT %:Y*)('&% zdelta,J@adore your emulatorst-02:kermie1&@st-02:kermie2 @st-02:kermie3@st-02:kermie4@st-02:kermie5@st-02:kermie6 @st-02:kermie7@st-01:monobass (st-02:break @st-01:digdug@st-02:servant1@st-02:ok ?@st-02:master 5@st-01:popsnare2@st-01:bassdrum3@x  2%,ㅅ G!{,     !Xaxel f.   axel f.st-01:hallbrass\@st-01:digdug@st-01:nice @st-01:synbrass@st-01:popsnare2@st-01:bassdrum2@st-01:dxtom@st-01:hihat2@st-02:reverb2V@st-01:blastV@st-01:hallbrass\st-01:synbrass(st-01:nice st-01:popsnare2(st-01:blubzingSx "!# u#>X blueberryb"C2(blueberryst-01:hornsst-01:synthpiano st-01:nice $st-01:percost-01:hooman st-01:digdug:st-01:shamusst-01:monsterbass*st-01:st-01:st-01:st-01:closehihatX0st-01:claps1~ st-01:bassdrum3,st-01:hihat2,x $ ,J543210/.-,xlessons in love&NqҪPACK &X&6.$nl.p8h-h;ogdTT.q0g ZXZ2\ 0 Rt0q$$Cxl.P0MF&N s ;;9:00><}7]hFF`=<; newfred$-PACKlRX6 ,mL.ԃjƃfvW8446vq2uu684s2u14h1qfrt,.40U #1! 5D`` phH0F (D 0Hpa ``@\@ A p1 #AA`0 a @P @PcE a0a  pH"p | !(0nQA00@ 'Q`PHpa `, `AC@`8 F: 8`Ä< #2 H0qZPD*@"t0X0B_@ $e,c5@ `aq%' P J V 3@@0a p$/؎gChH0jʇj* ,d pP deC5Ae a ( Ap2 H0Y80B5@ `aa%' P %Z+ @` xD :p@At1`T8P$0@  T0Ć*  # 4p@  H0QD8 PHpa #2!@ P<"V !x#A0FX`AO@k C f `  # p(TQA48 X0q 00&  P0T0Z+@ @@0aZR N 0AE0$B$ P @P$eCaa   # h2 $0H0qʆ} 00'Q`0U `/@`8 )' â !AA f gP@ `ba 0 #AA B +D0P| !X@8E* X` db-eC5A4`0 aD GE,@j" ( Cm` pH0a  :(y ** 8C( * F V 8E`!x#Y8H%` Rax0o @d2pb XGp !p0&G `h   !` `0 1x0X0F5 Sdl0$1QHA@@@B P`L@A0+  A@ @@B! *V 2 1:Cma( h @XP yh4fga H(h0  $@f0&!7`SA@@dl0HA@@@B P`L@A0' A@ @@B! *W A# 2x7<0@P+ /X DP>1Bxwxf| p (C #2 H0q P<x"` @`:l  )D  c)dC@Xj'@""¤e"`4S a P , P @PckCaa $2`  a (8 dH0N x*'<!EPT0 f @`4%` p( b pH(a 2\@!0@0`P @D (EC-x@(y 8@ `e h  @(@CdC@\x0` (` p h ( hp pHa 1!0T0Zʇj0@2$'a <  `a N (`@_@ A 3PPH0a P0D8ptQAt1`T8P$0@. `GdC, GC-x@(y 8@ `e h  @(@CdC@\x0` $3;+(` p h ( hp pHa 1!0T0Zʇj0@2$'a < "0h7P0H! @8(  #A"A@"2@ u ŀP @P$eC a0a < < R !3(7A`a 1AAȇj'@GgC Co Ho @0Ć  `H0jĆ* U A01`p0S P<D. @"t0 @z`a 2X@2! 5@ `a  bPD*@ @"t0D44u ŀ * E "AP8 p0PA`G$4A@bC-j ``BQ A00@. @ 00ćb x7X09h0"@ IPF@A`!1?IZ 0h: 2Q0o0 @QD , `8'(ckg`` @P<h!%j´ :tQA(>@  ! H0a P<X* GCgC `H0qʆu 0. ,B } ` X0q``0a@$aNr!@k C f `  # p(tQA48 X0q 4P x2X0BHp`0pa :(y $ 5h$ʇj" ( Cm` pH0a V A@<` "AP8 80} 00!B8"*@`8 )' â !AA f gP@ `ba 0 #AA B +D0P| !X@8E@ `m`pa 0 #A\@1A2 A@ #p3E0$B a ,@j" (C (x * F V "h3$  :(y ** 8C( * F V 8E`!x#Y8Hj 4H @@Xb !h5 #@1`"0 8$ o!" jH|>p00A50Z ) #ᵀ  z 10B4@A0 `<x# #X@2!r -`@"h0F ]P!" @A P0(0! PG a A C@@@P @  P $"41`(0f @h0X@ AC`a #A1m@0Fm!@+>Te= 0NlQ`YAm` f G #!A@O XV A@:@O @pG*BL0Bp<,1@pG i  WV! `Z < Bk@(aHPdu`p !0a@q^Ak$@A 0ìEk$+ƒ,Pb$ph0`<AZ @ 7)$&1@um`PaxPa @$Mô@C#+X$`  (0A6(H0(0e AHa # !5 a"C5$(a 8 Aa2P`d A102XsAMA 'ؐ(`\ A+?`Q ~ (`E(#(e# A>F`! t8AxPpPGA^( !p6{ (Z< W@(1!|Pa8A@JW-+ P@&@ Ap=_ X(A^q P0(0a/(0N:  <H<f (8 03PH`A ! { A@ A0a @A_q(AA@8T1C$qA6H0a0B p0b`akpaaPAa Ӂp00@ø@C5E06( P0 ' &|`c; X(@h0+@@TPb(Ca #A0Pbp0, 1@(`@PHL6``A<J? 821@a tk < pp0dE +  AX0ShL  9AaÊa !6`Q 8@ Aƃ(!5 8(`p0bpakpaaA %PbqT9Aƃ$X/@h1H A a@h0 `\ #00,k%Pe b ØG j A~46(^ d0 ` (t(``\ ( 5 ƃ)9Aa|Pa < +w-_@8A~ xXB TAp0"AAP1(!`00Bm`P@!ÊX P0Pa 0 `p8  0@ ̊V(E1B00!$1 B MA @O (E a B@XP0F`@è@8&(hlPX`Ea Ad@@0j@DX!`,<@@ a AD@#h0P00 z p0JP 0q < @A @ (E a BX p,<! gR  AB46A0AkEPj@$$(($`D #ASPAk,<B a AH@#h2A!BKUTihgfedcba`_tsrqponmlkj~}|{zyxB>XnhAxXPdnhst-01:monsterbass<st-01:strings7V@st-01:funbass @st-03:roombrass1*<st-01:bassdrum3@st-01:popsnare27st-03:snap27st-01:korgbeau <st-01:hallbrass\@st-01:strings1b7st-01:st-01:st-01:st-01:st-01:x C?D-r%$#"! 210/.-,+*)(=<;:9876543HGFEDCBA@?>SRQPONMLKJIWV^]\[ZYXDvX 0out runCXout runst-01:popsnare1@st-01:popsnare2@st-01:bassdrum3@st-01:shaker~#st-02:slapbass2$@st-03:sphere6#st-01:shamus#st-01:strings32 st-01:smash1#st-01:strings2@nst-01:claps2st-03:snap22st-01:monobass @st-03:exploV@st-01:strings1b@1x_80:GSOpapermixst-01:synthebassn@st-01:snare2@st-02:bassdrum5@st-02:ahhvox@st-01:strings1b@st-03:-dm1@st-03:-masbassu@st-01:heavysynth$st-02:minimoog 7st-01:strings7V@st-02:starpeace6@st-01:epiano-st-01:hallbrass\@st-03:-dm5Q@st-02:poison @x :Ham7  !#"$%%&&''()*+,,--../012345 6688779:;<<==>>>>!#"$%%&&''() 668877?@ ,@, ,0,@ S@} S@}:IXj,@, S,0,@ S0  0 0 0 @ @ P P0 ` `00 00}}  }0 0 0 @ @ P P:J۠}0 ` `0SSS0  S 0@@ @@S@0S@S@S@ @@0@@ :K@@S@0S@S@S@ @@0@@ @@S@0S@S@S@ @@0@@:&D @@S@0S@S@S@ @@0`` h`h`}`}`0:`:` ``:`:`0``L@:M#XGi|{zyxa`_^]\[ZYXBXthe second faceNO]b~O.fastdirN~\fadore your emulator:Xaxel f.ur emulatorXblueberry>Xdelta lessons in lovexn.s beat*Xn.s speedXnewfred nh second face>Xout runvXpapermixXthe second faceBXthrust in loveD80A:8SONGSpERUuESs@@@@@@ETq     EU|o   @ @ @@ @@ EV%m        E D"    @ @ @@ @@ W cu}lkjihgfedc`5thrustMY|ripped by d.o.cst-01:bassdrum2@st-01:pingbells @st-01:noteman @st-01:wowbass @st-01:strings1b@st-01:electom,st-01:claps1~@st-01:hihat2(st-01:marimbast-01:popsnare2(st-01:touch@st-01:steinway z8st-01:squaresV@st-01:tinewaveV&st-01:soundtrackV@)x MZ?  S@SP S@}pS@SPS@S@PS@S }pS@S@}pS@S@M[eS@S@}pS@@P: @}p@P@@P@ }p@@PS @}pM\35c@P@}P`}@`S`}p}@`S@S@.S@S@S@S@.S@S@M]5a.S@S@S@S@.S@@}@.@@@@.@@SM^żU_@S@Ű@S}@}@.S@S@.S@SS@S@S@.S@S@M_E]S@.S@S@S@S@.S@@}@.@@@@.@M`؋[@S@S@@}@}}@SSSSM aY:qSM +)qSSPPS  SPPSSPPS0bnƪtsrqpon PtskplusWdHPACKT:X.NE`y@ѡ *xh&X C C C Cp_A>c&A<?H( `m`hp\ ~ Tu`!@4!A#P@a(PD1`P(`a`A02H !AȠK@ Wg i(pH0(0.` H!1@-!)P8 ? !!C/S8$P8 8[ (Au`1(` ( <1@D @ pB !E`(f`A FA5!@ .P@ :0` A(0 @P` bVP 6XDA J` X@|L@_@O @@paP5 C(Cp( <$jHU "% (,*XL "0fIPp(  hb4Ci|0E 2!A"(5E 88 B|!`$ (e` ~A$*G`A5 C `E A@ A(CWhgPD0b P=>$XI 2TjBd;<3P\8`p"C f8` (`u@P@H0 !`` b ! !!B qA0I  @h0,<J!PG$a^E!@P DS(@0pPz 1@-!L[@I =`` BE0pXH ( aPa ^ 2A@AB(aLふ@ @ @ Xd $0TPp@(`h0A * (`@v@ XA($P6H@T2A| 00 `@@P%Ch (Wjp1aB `^ 2@_ A BB a 0 Pf!C$ aB `^ 2 A BB a 0k(( @X!@ u`a  A0@ A`P k EkdC (0"#Ap  7p~  ( @ *h:d @e$!@!P 0` d5T J&A ,@@(`EaB0/@ P6H@T2A| 0A0 !!C( Pf!BAv@ P2H8  @0f z !H8XH2 `ht WkT@7bP O A0YP8DV@"@2A!B@ @rCpH#P3()BZ "@ï (A~8`5 A @<G `Ew  `. A!H8XP8hD @( `(u`(@p0|AB!`!A8( ( 00AX VS@(AT(u`(@p0jA x#0@#e0a @(`aTQP0@$; B!p0`(@p0APbE"AmP?A( <$A@-rCpH W l+P A|D}0?X(0A0? y/B`@! ``i @ @! A(( 00k-(( ,R@X!@ , @u @ ?  L8 R   8|'e` ``@ 00AXA P1) o>*X0A0< ~ Pp !SAp2 0;P? @(`aTQP0@X0BAX@X0A0< ~!CH8 V 0\`,XD@x}< 2 a pӁ\@"_@"@DZ 4$,80@ J W }pX48 &(+M` (`8  0C C%0$ `M   gk5a !04p8K>V "k4@ 3k`^   3@"X:H @%H0 P!a фQ "a8(0`0@!`  t-a8a `x6\0I˜J$(X Z 7$  gk5a !04p8K>V "k4@ 3k`^   3@"08@#$ -  @103~ (sP2`%&A@,H"P1d B̚R`@ u@8mu] u<.fastdirbohPACK D&X.6 o;٘r0Xtskplus Pthrust in love`lessons in lovexadore your emulator:Xnewfred delta out runvXn.s beat*Xnh second face>Xpapermix҂p vu9X n.s speedσtsrqpon PtskplusMyF%@`S@}```S@S@`S@``S@p}`}`p`S@`ŰS@M z8u)S@Ű@M!{8e'SS@S@S@S@M"|%M#W Phu50)N@)B@LP01@01DA@!03A01h p!5X00k-(( ,R@X!@ , @u @ ?  L8 R   8|'e` ``@ 00AXA P1) o>*X0A0< ~ Pp !SAp2 0;P? @(`aTQP0@X0BAX@X0A0< ~!CH8 V 0\`,XD@x}< 2 a pӁ\@"_@"@DZ 4$,80@ J N.t.`tskplus PM"W$NC6A:8SONGSpmT7Xshadowz pleasuren.s speedXvu9X n.s speedm.`tskplus Ptsrqpon PtskplusM+S@@@@@S@@S@@@@@S@@SMt)}@S@SS@S@S@SS@S@SSS@S@S@S@S@SS@MA%'S@SS@@@S@@S@@S@@S@@@S@M%S@S}}@S@SS@S@S@SS@S@SSS@S@S@S@S@Mӛ#SS@S@SS@}@}@.}@}@S}@}@S}S}@.}@}@M%!.}@}@S}@}@S.}@@P@@@}PS@@S@SP@Mn5@@P@@}@}P}@}@}@SP}}@}@}}@.P}@MO}@}@P}@}@@SPP@PP@P@P@P@PPMU@@P@P@P@PS@SPP`SPS`:`PP`M&e@SS@S@S@S@S@S@Mxܣ-Ű}S@S@S@S@S@S@SŰ@`S@S@@`S@S@`S@S@EN.@ }@@@@0@ 0@ @00@0 0EYY ::X0 S0: :XX0X0XX@ }@M '}00SPPSPPSPP}ŰPSP}SPSPPSPM %}S}PP}}PSP.P}PPSP}P.PPS@SPPPS@S@SS@M #S@S@S@}P.PPS@S@}S@}S@S@S@PSPPS@S@MӹU!S@S@S@S@S@.S@S@PSPPS@S@}P.PPS@S@SPPMgSS:SPPMESPPSM75SSSSSMSSSSME-S@S@S@S@SS@S@SS@S@S@S@S@SS@S@S:ȹĺh h0h@ h 0} h}0hh }@:t0h h0h@ h 0} h}0hh }@:0h h0Ph}P@ hPP 0P:P :P}0Ph :P@P0PP P0h}P@ hPP 0P:P :P}0Ph:߻ P@P0PP   XP::J6P 0P:P :P}0Ph E ?  000 000 000 0000 0 E 0 0 00@ @0@@ @E -5@0 0 000 @0@E 0 }@@0@ 0@ @00@@ @@0@@:wsԺ P:SP0SP P:0SPP}}0P} P0P:0 0:xP4 0 00 X0 X0:yܶ 0 0}0 0h0 hh0:z#h0 h0.}0}}0 }0}0@h0h:{dh0h0 h0.}0}}0 }0}0@h0h:|wh h0 h0.}0}}  }0}0@h0:}3hh h0 h0.}0}}  }0} @:~'$0 0 0 0 :0 0 0 0:V 0 h0} h0h }0:(h h0 h0} h0h }0:lĺ @ 0  00  0  0:meu0  0  00  0  :n5h00h hhh @X0@X @ְ@ X0@ְ@X @}@} 0}}@} @ְ:o8}@ 0@ְ}@ @}S@S 0S S 0S S 0S:pF S 0S S X0@X @ְ@ X0@ְ@X @}@} 0}:q=}@} @ְ}@ 0@ְ}@ @}S@S 0S S 0S S 0:rԮS S 0S S S0  @0  :s.0    :P PP}P PPP PP P PP}P }PP0@@@   0@@h0@X0@ @@:t0hh0@@@ ֐֐@@X0@0ʐ@ʐh ֐֐@0  (0@@֐֐ @h0h@hX0h0h :u0@@@0 @0h0 00SP P:0SPP:v! P:SP0SP P:0SPP0P P:SPX0SP P:X0SPP:a 0}  00}0}}}S S }SS0}@0@ 0}: : 0: :}0}}}} } }:b0}0 0}  00}0}}}S S }SS0}@0@ 0}: : 0: :} :0: @}:::ch00: :@}:֐0֐֐ ֐00֐0֐֐ }:0: @:dU}::00: @}:0 @}0}0}}0}@} @.0\.0 @:eB. 00 @. 0 @. 00 @. 0 @:fe. 00 @. 0 @. 00 @ 0:gJĮ  00  0  00  :h½70  00  0  00  :iût0  @00  @0  @00 :jĪܔ @0 @. 00 @. 0 @. 00 @:k/e. 0 @. 00 @. 0 @. 00:VƳ8   0SPSPS SPSPS0SPS SPSSPSX0PPX SPPX0:WǹutPX SPSP0P}P} SP}P}0}P} P}}0SPSS SS:Xȳձ0    0SPSPS SPSPS0SPS SPSSPSX0PPX SP:YɯPX0PX }SPSP ŠP}P} SP}P} }P} P}} SPS S :ZS S    hP0hPP@PP@@0:PhP:["0hP}P PP::0 :PhhhP0hPP@PP@@0:PhP:\0hP}P PP::0 :PhhhP0hPP@PP@@0:P:]4hP0hP}P PP::0 :PhhhP0hPP@PP@@0:P:^ξhP0hP}P PP0 @P@P0}@}P  0 :_ϰ00 @P 0@P @@@P00S@SP  0:`! 0@@@PS@SP:0}@}P:: :: 0:::  :0@P@P0}}}} } }0}0:KѸe P}P}0:PSPS SS0    0SSSS S.S0:LҭSS S.SX0X .X0X .0}}} }}0:MӼ6u}} }}0SSS SS      0SPSS S:NԷPS0SS PSPSX0PPX SPX0X 0P}} P:Osŭ}}0P}} SP}}0SS SS0    0SPSS:PֵDD PSS0PSS SPSSX0X SP}PX0SPPX 0P}:Q׼U} P}}0P}} SP}}0SS SS0    0SP:Rط$SPS PSSPS0SSPS PSPSX0PX PX0PPX P:Sٽ Ī0P}P} P}SP}0}SP} P}}0SPSS SS0  :Tگ  0SPSSPS SSPS0PSSPS SSPSX0PSPX SPX0PSPX :UżSP0P}SP} }SP}0P}SP} P}}0PSS SS0 :@ߔ :::}0}}@@ 00 }0}}@0@ SS}0}}0:AݵSPS .P.P\0 P \\ \00SPS .P.(P(0 P (( SPS(0.P.(:B޴D(0SPS .P.(P\0 P \\ \00SPS .P.(P(0(( (0:Cߺ7((0SPS .P.(P0 P  00SPS .P.P0 P  SPS:D$T0.P.0SPS .P.P(0 P (( (0((0SPS( .P.(P0 :Eu00SPS .P.P\0 P \\ \00SPS .P.(P(0 P (:F( SPS(0.P.((0SPS .P.(P\0 P \\ \00SPS .P.(P(0:GKu(( (0((0         (    0SSSS S.S0SS S.S:HX0X .X0X .0}}} }}0}} }:I嵘E}0SSS S.S     . 0SPSS SS0SS P:JлSPSX0PPX SPX0X 0}P}} }}0}}:5Ժ}}}0@@0 0@@0@@ @@:0:::: }}:0:0::6봸: :00 SS00 0 000000:7FĶ00000000   }0}}}}}}}} }0:840 :0::::::0:: :00 }0} 0:9d0:: ::}0}0 00:: ::}0} ::İ00 }0}0 00 }0}:;U$ 00:: ::}0}0 00:: ::}0}:<h 00 }0}0 }0}0 }0:=}}@@ }}00::: :::}0}}@0@ }}00::: :::>x:}0}}@@ 00 }0}}@0@ 00 :?ۻ}0}}@@ }}00::: :::}0}}@0@ }}00::::*$00P0.@.P0 000 00S@SP.@.P0S@SP0 000:+r 00@PS@SP0@P0 000 00@P@P0@P0 00:,f0 000PPPPSPSP0PP0PPPPS SPSPPP0PP:P:PSPPS0SPSP0:-ԴPP:P:P PPSSPSP0PPPP@PP@0@P@P0PPPP PP@@P@PX0XPXPXPP:P:P0PP:.\0PP  PPS PPS PP 0PPPPSPSP0PP0PPPP@ SPSP@PP:0PP:PPSPSP:/_D0PP:0PP:PP} SPSPPP0PPPPSPSP0PP0PPPP@ SPSP@PP:0PP:PP:0 >L#7 ==L"Sp7 < <C;"Z4%L!7 ;;,;Sp7 : : :7 99LSp7 8 8L7 77<7Sp7 6 6L7 55LSp7 4 4L7 33,3Sp7 2 2 27 11LSp7 0 0L7 //%jC?(N:' h`h`}`}`0:`:` ``:`:`0`` ````0`` :`:`:$0``X`X` X`X`0X`X` X`X`p0pppp p:p:pp0pʀppp p:pC,)N.P0p77P p77}P@p7@7}?P@@pG@GP GGP0@pGGP@pGGP@@pG@GP @pGGP@@pG@G}0GGP@@pG@GP GG}P0@pGGPC-*.c@pGGP@@pG@GSP @pGGP@@pG@G}0GGP@}pY@YP YYP0}pYYP}pYYP@}pY@YP }pYYP@}pY@Y:0YYP@}pY@YP YYP0}pYC.+< YP }pY YP }pY YP }pY: YP }pY Y@@@@@@@@@@ @@@@@@@@0@@C/,XRP`P`P}`PS`P}`PS`P`P`P`X P`P`P`P`P` P``C0-4X P` P` P` Po @}P0@pGGSP@@pG@G}}P @pGGP@@pG@GS}P0@pGG}P0@pGG}P @pGGSP@@pG@G}P0pGGPC1.,@pG@GSP pGG}P@pG@GP0pGGSP0pGGP pGGP@pG@GSP0Sp77P@Sp7@7SP Sp77P@Sp7@7SP0Sp77P0Sp77SP Sp77P@Sp7@7P0Sp7C2/0 7P p}P0}P }pSP0SP Sp0Sp77@Sp7@7}P0}p77P@}p7@7@}P }p77P@}p7@7}P0}p77@P0}p77}P }p77P@}p7C30G@7@P0pGGP@pG@GP pGG@P@pG@GP0pGGP0pGG@P pGGP@pG@GSP0Sp77P@Sp7@7SP Sp77P@Sp7@7SP0Sp77P0Sp77SP Sp77C41v6P@Sp7@7P0p77P@p7@7P p77P@p7@7P0p77P0p77P p77P@p7@7}P0@pGGP@@pG@G}P @pGGP@@pG@G}P0@pGGP0@pGG}PC52u @pGGP@@pG@GP0pGGP@pG@GP pGGP@pG@GP0pGGP0pGGP pGGP@pG@GP0pGGP@pG@GP pGGP@pG@GP0pGGP0pGC6GIGP pGGP@pG@G_00P }p0P }p0P }pАМ@:0pG@G@pG@G: pGG@pG@G:0pGC!4dj@ } P@0}  @@_0@pGGGP0@pG GG@P@pGGP0pGGG@P0pG GGSPpGG}P0p77S7P0p7 7C"5~K7Pp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGGP0pGGGP0pGS GG֠PpGGP0p777PC#6(0p7 77Pp77P0p777P0p7 77Pp77@@P0@pGGGP0@pG GG@P@pGGP0pGGG@P0pG GGSPpGG}P0p77C$7ŕKS7P0p7 77Pp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGGP0pGGGP0pGS GG֠PpGGPC%8y 0p777P0p7 77Pp77P0p777P0p7 77Pp77PX @@@@@@@@@ @@@C&90,@@@@@@@ @@@@@@@@0@@P`P`P}`PS`P}`PS`C':J_,P`P`P`X P`P`P`P`P`0P@` C(;dk0@_ `00@P` 0P`0P`@@@@0 _ `0 P` 0P`0P`,0@,0@,0@X,0  @ 0 @_` %0@_ ` 0C)<__`0_ `@@@X @0P`0P`0P`0P` P @@P0@pGGGP0@pG GG@P@pGGP0pGC*=GG@P0pG}P?@pGGP@@pG@G}P @pGGP@@pG@G}P0@pGGP0@pGG}P @pGGP@@pG@GP0pGGP@pG@GP pGGP@pG@GP0pGGP0pGC+(GP pGGP@pG@GP0Sp77P@Sp7@7P Sp77P@Sp7@7P0Sp77P0Sp77P Sp77P@Sp7@7P0p77P@p7@7P p77P@p7@7P0p77C?p3P0p777P0p7 77qPp77P0p777P0p7 77֠Pp77P0pGGGPC@0pG GGPpGGP0pGGGP0pG GGPpGG֠P0pGGGP0pG GGPpGG֠P0pGGGP0pG GGPpGGP@0@P@ @ CAl_@@0 _SS0PS S PS0S  @@_0@pGGGP0@pG GG@P@pGGP0pGGG@P0pG GGSPpGG}PCB90p77S7P0p7 77qPp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGGP0pGGGP0pGS GG֠PpGCC͋GP0p777P0p7 77qPp77P0p777P0p7 77Pp77@@P0@pGGGP0@pG GG@P@pGGP0pGGGP0pG@ GCDRGSPpGG}P0p777SP0p7 77qPp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGGP0pGGGP0pGCE'S GG֠PpGGP0p777P0p7 77qPp77P0p777P0p7 77Pp77PX @@@@@@@@CFѣ@ @@@@@@@@@@ @@0P`P`P}`PS`CG?P}`PS`P`P`P` P`P`P`P`P`0P@` CHԎP0p777P0p7 77qPp77P0p777P0p7 p77֠Pp77P0pGGGP0pG GGPpGGC 3fP0pGGGP0pG GGPpGG֠P0pGGGP0pG GGPpGG֠P0pGGGP0pG GGPpGGP0@P @ _@0 _@}0PC JpE0}pG. G@GP@}pG@GSP0SpG@G@GP0SpG G@GP@SpG@GP0SpG@G@G P0SpG G@G.P@SpGS@G..P0p8@8@8P0p8 8@8P@p8@8 0P0p8@8C KטЮ (@8P0p8 8@8 P@p8@ 8.P0p8@8@8P p88@8P0p8@8.P0p88֠PC L0p777P0p7 77qPp77P0p777P0p7 77Pp77P0p777P0p7 77qPp77P0p777P0p7 77֠Pp7CMl07P0pGGGP0pG GGPpGGP0pGGGP0pG GGPpGG֠P0pGGGP0pG GGPpGG֠P0pGGGP0pG GCN"GPpGGP0@P @ _@0 _S}0PS } PS0}  @@_0@pGGGP0@pG GG@P@pGGP0pGGG@P0pGCO< GGSPpGG}P0p77S7P0p7 77Pp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGGP0pGGCPvGP0pGS GG֠PpGGP0p777P0p7 77Pp77P0p777P0p7 77Pp77@@P0@pGGGP0@pG GG@P@pGGP0pGCQ|GGP0pG@ GGSPpGG}P0p777SP0p7 77Pp77P0SpXXXP0SpX X}XSPSpXX@@P0@pGGGP0@pG GG@P@pGCR˖[GP0pGGGP0pGS GG֠PpGGP0p777P0p7 77Pp77P0p777P0p7 77Pp77PX @@@@CSkӟ@@@@ @@ @@@@@@@@ @@@@@@@@0@@P`PC>ϳ`P}`PS`P}`PS`P`P`P` P`P`P`P`P`0P@` A UK A!X  C WȿX@}pG@GSP0SpG@G@GP0SpG G@GP@SpG@GP0SpG@G@G P0SpG G@G.P@SpGS@G..P0p8@8@8P0p8 8@8P@p8@8 1P0p8@8 (@8P0p8 8C I̍@8 _ @p8 /0.` 0.` 0.` 0.` 0.` 0.`/0.`  ..SS}P0}pG@G@GP0}pGʀ G@GP@}pG@GP0}pG@G@GPCY$[n .}P0}pG@G@GP0}pG 1 G@G (P@}pG@GP0}pG@G@GP0}pG G@GP@}pG@G SP0SpG@G@GP0SpG G@GP@SpGCZHR@G.P0SpG@G@GP0SpGS G@GP@SpG@G..P0pX@X@XP0pX X@XP@pX@X 1P0pX@X (@XP0pX X@XP@pX@X.P0pX@X@XP0pX X@XC[3P@pX@XP0pX@X@X P0pX X@X.P@pXS@X.}P0}pG@G@GP0}pG G@G 1P@}pG@G (P0}pG@G @GP0}pG G@GP@}pG@GSP0SpG@G@GP0SpGC\/ G@GP@SpG@GʀP0SpG@G@GP0SpG G@GP@SpG@G.P0pX@X@XP0pX X@XP@pX@X 1P0pX@X@XP0pX X@X P@pX@X .P0pX@X @XC];P0pX X@XP@pX@XP0pX@X@XP0pX X@XP@pX@X}P0}pG@G @G.P0}pG G@G P@}pG.@GP0}pG@G @G.P0}pG G@G P@}pG.@GSP0SpGC^Bf@G @G.P0SpG G@G P@SpG.@GP0SpG@G @G.P0SpG G@GP@SpG@G.P0pX@X @X.P0pX X@XP@pX@XP0pX@X@XP0pX 1 X@X (P@pX@XCVʀ[ .P0pX@X @XP0pX  X@X P@pX@X P0pX@X@XP0pX 1 Xʀ@XP@pX 1@X}P0}pG@G@GP0}pGʀ G@GP@}pG@GP0}pG@G@GP0}pG. G@GPA`ׁ`00pL00\2 000000000000000AaxX00@ @0,@0@0@0@0@0@0@0@0@0@0@0@0@0@0AbvH$@0@0@0 0\20000000000000ActT0000 00000000000000Ad}_ 40 <00 @0 0P0|(0000P0|(0Ph0|(0P0|(00Ae˾`00P0|(0Ph0|(@ @0P @0|( @0p@0h@0@0P@0|(h@0P@@0|(@0P @0|( @0AfW@0h@0@0P@0|(@@0P@0|(} 0P0|(0000P0|(}0Ph0|(@0PAg\0|(000@0Ph0|(0P}0|( 0P@0|(0p0@00P0|(0P@@0|(@@ @0Ah(P @@0|(@0@0@0 0Ph@0|(`0`@@0`0L00 00000000AiO4H00h 00000000000} 000ATF0  0  A kNZ@0 000000A ldX@0 @0@0000000@@0h@0@@@0@ @@0@0@@00@@0@A mW߲0h@@0@@@0 @@0@@0@0@@00@@@@0@0@@0@0@0,-0 70@0 @00A n̜dT0 @0@@@0h@0@@@0@@0@0@@00@@0@0@@@0@@00 @ 0  0 0 0@0 Ao @@ 0 0 @ 0 0@000@00 70 20 -0 (00@0P00@0`Ap˟DP0P0P0` @0P@@@0`h@0@@@0P@@0@0@@0`0P@@0P@0`@@@0P@@0`0 @ 0P  0 0AqQdN 0`@0P  @@ 0P 0` @ 0P 0`@0P00@0`0P0P0`0`00``0P0ArƙDLp0p0`0p0P0p0`0p0@0P@@0p@0p@0`0p@@0P@0px@0`@0p0 0P AsdJր 0p 0p 0`ր0p  0P 0p 0` 0p0P0pր0p0`0pր0P0`0`00pAt߄H0P0p0p0`0p0P0ph0`@0p0 h0Phh0ph0p@h0`0phh0Ph@0p}h0`hA_\h0p0@0P0p0p0`0p0P@0ph0`}0p0P0p0p@0`h0p0Ph0`0}8vU$S@  }@ 0S@  @ @@@ S  0   @   0 0  @  @@ @: 0 8Dz} @  0    @  0  @ @} 0 0 @  0 @ 0 0 @ @+,g ! X#P0,0 (`@PHL6``A<J? 821@a tk < pp0dE +  AX0ShL  9AaÊa !6`Q 8@ Aƃ(!5 8(`p0bpakpaaA %PbqT9Aƃ$X/@h1H A a@h0 `\ #00,k%Pe b ØG j A~46(^ d0 ` (t(``\ ( 5 ƃ)9Aa|Pa < Ayw]  @  <  8 4  0  ,  (  $  $  (  ,  0  4 8  <  @  <  8  4 0  ,  (  $Az:-    $  (  ,  0 4  8  <, ,@ @   < <   8 8 4 4   0 0   , ,   ( (   $ $   $ $   ( (   , ,   0 0   4 4 8 8   < <   @ @   < <   8 8   4 4 0 0   , ,  A{i ( (   $ $       $ $   ( (   , ,   0 0 4 4   8 8   < <h,h,@@   < <   8 8 4 4   0 0   , ,   ( (   $ $   $ $   ( (   , ,   0 0   4 4 8 8   < <   @ @   < <   8 8   4 4 0 0A|?"   , ,   ( (   $ $       $ $   ( (   , ,   0 0 4 4   8 8   < <}, },@ @   < <   8 8 4 4   0 0   , ,   ( (   $ $   $ $   ( (   , ,   0 0   4 4 8 8   < <   @ @   < <   8 8  A}ݶї 4 4 0 0   , ,   ( (   $ $       $ $   ( (   , ,   0 0 4 4   8 8   < <<5 A~JhhhhhhAtHhhhhhh}}}}}}A jt\}}}}}}8dS` :` :P` 0 ` ` ` @ :` @` @` 0  ` @ `  0`  ` `@ @` :` ` ` 0`   `8QQ @ ` ` 0`  0` 0:` @:` 0` 0:` 0` 0  ` @ `  ` 0  ` `@ @` ` :` ` 0  8AO` @ ` ` :` 0 :`  @:` @:` @:` @ 0`  ` ` @ `  0`  ` ` @ `  @ 0@`8 DM@ @` @`@ @@ @`}  @ 0@`@ @@` @`@ @@ @@`: @` @ 0}` }` }` @ }`  0}` }` @ }` }` 8TK` 0  ` @ ` ` ` 0 @`  @` @` @` @ 0`  ` ` @ `   0`  ` ` @ `8 4I ` @ 0`@ `@ @@ ` ` @`@ 0@ ` ` @`@ @@`@ ` ` ` 0 ` ` @   0`  ` ` @8 FG ` }` ` 0  ` @` `  ` 0 ` @ 0` @` 0` 0` 0:` ` S` ` @:` ` S` ` 0:` ` S`8 E ` @:`: ` S`S }`}} 0.`} ` .` }`} @.`} ` .` }`.} 0.`} ` @.` }`} @.`} @` .` @`@@ 0@`@ ` @` `@ @@`@ ` @` `@ 0@`@ 8 C` @`@ `@ @@`@@ `S @`} }`} 0` ` ` }` @` ` ` @}` 0` ` @` }` @` 0` @}` @` 0  ` @` `  `8 YTA 0  ` @` `  `S 0 `  @` ` @:`} 0 @:`  @ @:` :` @`@ 0@ ` @ @`@ ` 8uU` `@ 0@ ` @ @`@ `} `S }`}} 0} }` } @} }` .` @}`.} 0} @}` .`} @.`} @` @` @@ 0@ @ @6y?0@0hp0p@0p@00p@ }p0@0hp0ph`@0p @00p@ }p0 @0hp0hp}`@hp }p@p@ 0p@ p`@0p@006=p@ }p0@0hp0p@0p@0 p@ }p0@0hp p `@0p @00p@ }p0 @0hp0p@`@p @p@00}p@ p@ p p@p6P;p@}phpp@pp@}phpp@pp@}phpp@@php@}pp@6J9pp@}phpp@pp@}phpp@ p p@}p hp}p@ p p @ :p 6Fd7 @P0@0P0P@ 0P@0P0@P0@0P0:P@ 0P@00 P@0 P @00Ѐ P@  P0 @0 P0P@0P@00hP@ 065P@0P0P@0P@00P@ P0@0P0@P0@0P0}P@ 0hP@0P0xP @0xP@0P0@ @ P0@0P0@0P@00P653@ P0@0P0p֐@pp@}phpp @pp@}phpp֐@pp@}phpp@p@p6T1@p}p@}pppp֐@pp@}phpp@pp@}phpp @pp@}php}p@hp6hC}ppp@:pp}pp@}phpp @pp@}phpp֐@pp@}phpp@p@p8UO;_` 0 ` :` ` @ ` :` ` 0 ` :` ` @ ` :` :P:` 0 ` ` :` @ ` `8p$U P`@ 0@ :` ` `@ @@ :` ` P` 0 ` ` ` @ ` ` ` 0 ` ` ` @ ` ` P`@ 0@ }` ` `@ @@ 6r?hp @0hpp@ @p@p@ }p }p@ p hph@P0P}p@00Phph@ P0}p@0Php0h@Php0P@0}p0Phph@ P0}p@0P0hph@P0P}p@00Php6T=h@ P0}p@0Phph@Pp P@@pPhph@ P}p@ Pp  Pp@0 P:p @00 Pp@  P0:p @0 Pp0@p0 Pp @0:p0 Pp@ 0p @00@Pp@@ @Pp@06P;0@Pp@@ @P0p@0@Pp@P@p@@@P hPhph@hP}P}p}@ }PPp@ P `ph@0@p@00@`hph@ 0@p@0p0h`h@p0@p@00}`hph@ 0@p@0p0`@@p6h90@0hp0`@ }p0@0hp0@`@p@0p@00p@ p0@0p0h`p@0p@00`p@ }p0@0hp0@`@`p0@0 `hp0@ `@p0p@006}7h`hp@0 @00@ 0 @00@`@p@0p@00p@ p@ p Pp@0p@0P0Pp@ 0p@0Pp0P@p0@0Pp0p@ P0Pp6 45@00Pp@0p@0P0Pp@ 0p@0Pp0@Pp0P@0p0P@p@ Php0}p@0P}p0Phph@h@h@ h@h@h@h@ 6 3h@h@h@h@h@ h@ h@h@ h@ h@ h@ h@``@@@ @ `@@6 ՞t1@ @``@``@@@ @@@@ @@``@h`@` @@  @@6 74/ @@ }` @h`@@@ @}`@@@ @ph@@p}@PPp@ p}@PhPp6 OD-@P@p}@pP@ pPph@Pp@p@ Php @ P}p@  Php @@p P@p@@Phph@P}p}@ Pp@pPp@@p@PPp:@ p@P6dAPp@@p@PPp@ p@PP p @hph @ P P}p @  Phpր @ P Php@}p@@PPp@ p@ p`@0p@00p@ }p":PGS`S G@PS G`@. G.`SPG. G.`@.P. G@. G\`SPG. G@P. G@h X`}PXPh X@.Ph X `@Ph XSX `Ph X@h X`@Ph X `SXPh X `@h X@Ph X`SPXPh X@Ph X@P 8`}P8P 8@ 8"A S`@P 8S8S`P 8@ 8`@P G.`SPG P G.`@ G@ P G\`SGP G@P G@Ph X`} PXh X@ Ph X `@Ph XSPX `Ph X@Ph X`@h X `SXPh X `@h X@ Ph X`SXh X@h X@PS G`} PG"S G@ PS GS`@ PS GSPGS`PS G@PS G`@. G.`SGP. G.`@. G@.P. G\`SGP. G@. G@Ph X`} PXh X@ Ph X `@Ph XSPX `Ph X@Ph X`@h X `SXPh X `@h X@Ph X`SXPh X@h X@P 8"AS`}P8P 8@ 8S`@ P 8S.P8S`P 8@P 8`@P G`SGP G`@ G@P G`SG} P G@P GSP@ W`}W@ W@@ W@`@@ WSW@`@ W@@ W`@@ W@`SW@ W@`@@ W@@ W`SW@ W@"@ W@P@ G`}G@ G@@ G@`@@ GSG@`@ G@@ G`@@ G@`SG@ G@`@@ G@@ G`SG@ G@@ G@P X`}X X@ X`@ XSX` X@ X`@ X`SX X`@ X@ X`SX"`  X@ X@P G`}G G@ G`@ GSG` G@ G`@ G`SG G`} G@ G`}G G} G`} 0h0Xh0}Xh0Xh0@X@XSX 0h0X@X@h0h0X.0SXh0Xh0@X@" ďXSX 0h0X@X@h0S0G 0}GS0Gh0@G@GSG 0S0G@G@.0.0G0SG.0Gh0@G@GSG0.0G@G@ 0 070}7 07h0@7@7S7 07@7@h0 070S7 07"!XϋB@7@7S7 07@7@S0G}GS0G@G@GSGS0G@G@ 07S7 07@7@7S7 07@7}X@XSX 0h0X@X@h0h0X.0SXh0Xh0@X@$ hKhX Ax8 T3 #X0JE(B" H0aʇj'<X:`G-eC5Dhd$ XR @`8 )' â !AA f gP@ `ba 0 #AA B +D0P| !X@8E@ `m`pa 0 #A\@1A2 A@ #p3E0$B a ,@j" (C (x * F V "h3$  :(y ** 8C( * F V 8E`!x#Y8Hj 4H @@Xb !h5 #@1`"0 86 p@0p@00p@ }p0@0hp0p@0p@00p@ }p0@0hp0p@0p @00p@ }p0 @0p6,A0hp@hp0}p@0p@ 0p@ 0p@0p@00p@ }p0@0hp0p@0p@00p@ }p0@0hp0p@0p @00p@ }p0",P 7P@ 7@P7PS GP GP@G@P GPSGP GSP@ G@S 7}S 7PS 7P@7@SPS 7PS7PS 7P@S 7@P7PS@ GP@ GP@G@P@ GSPSGP@ GP@@ G@ 7} 7 7@7@"g\@ 7S7@@ 7@ 7@@7S G G@G@@ GSG@@ G@ G@@S 7}S 7@S 7@7@@S 7S7@S 7@S 7@@7S@ G@@ G@G@@@ GSG@ G@@ G@Sp 7}7 7"Nm@ 7@7S7 7@ 7@ 7S7 7@ 7@7S7 7@ 7@@p 8}8 8@ 8@8S8Sp 8@ 8@ 8S8 8@ 8@p8S8}p 8@ 8@ G}"ksG G:@ G@:pGSG G:@ G@p GSG G:@ G@pGSG G:@ G@}p I}I I:@ I@ISIp I:@ I@ ISIp I:@ I@ISI}p I:@ I" @@p@ 7@}7@ 7@@ 7@7@S7@ 7@@ 7@@ 7@S7p@ 7@@ 7@hp7@S7@p@ 7@@ 7@p@ 8@}8@ 8@@ 8@8@S8 p@ 8@@ 8@@ 8@S8@ 8@@ 8@hp8@S8"@ 8@@ 8@ 7 }7 7@ 7@7 S7 7@ 7@ 7 S7 7@ 7@ p7 S7 7@ 7@pS IS}IS I@S I@ISSIpS I@S I@S ISSIS I@S I@ pI"=sSSIS I@S I@ 7 }7 7@ 7@7 S7 7@ 7@ 7 S7 7@ 7@hp7 S7p 7@ 7@ 8 }8 8@ 8@8 S8 8@ 8@ 8 S8 8@" 8@8 S8 8@ 8@ph Xh}Xh XЀ@h X@XhSXh XЀ@h X@h XhSXh XЀ@h X@XhSXh XЀ@h X@hph Gh}Gh GЀ@h G@GhSGh GЀ@h G@h GhSG"h GЀ}h G@Gh}Gh G}h G}h X0}Xh X0@X0 @X0SX h X0@X0@h X0 SX0h X @X0@XSX0h X@X0@S G}G0S G0@G0S@G0SG0SS G@G0@"O. G.SG0. G.@G.0@G\SG0. G@G0@ 7}70 70@7.0 @70S7  70@7@ 70 S7 70 @7@70S70 70@70@S G0}G0S G0@GS@G0SGSS G0";R@G@ 70.S70 7 0.@7@7 0\S7 70@7}Ph X`}XPh X@Ph X `@Ph XSX `Ph X@Ph X`@Ph X `SPXh X `@Ph X@h X`SPXh X@Ph X@S G`}PGPS G@PS GS`@PS GS"00I@I@0ISSI00IS@I@ISI00I@I@07}7007@07@07S07007@7@007S7007@7@07S07007@07@@008}8@008@S08@@@08"/L}S08@008@08@08@S08008@@08@08S08008@08@00G:}0G0G@0G@0GSG00G@0G:@00GS0G00G@G@0G:SG0G@G@00I}IS00I@" _IS@0ISISS00I@0I@00ISS0I00IS@0I@S0IS0I00I@I@@ @Y0}@ @Y@ @Y0@ Y@@ @Y0S Y @Y0@ @Y@@ Y0S @Y @Y0@@ Y@ @Y0S @Y@ @Y0@ @Y@@ }@Y0}@ }@Y"Uf}@ }@Y0@ Y@}@ }@Y0S Y }@Y0@ }@Y@}@ Y0S }@Y }@Y0@}@ Y@ }@Y0S }@Y}@ }@Y0@ }@Y@S@ S@X0}S@ S@X}@ S@X0@ X@S@ S@X0S X S@X0@ S@X@S@ X0S S@X S@X0@@@ X@ S@X0S S@XS@ S@X0@ S@X@" @ @@G0}@ @@G@ @@G0@ G@@ @@G0S G @@G0@ @@G@}@ G0S @@G @@G0@@ G@ @@G0S @@G}@ @@G0@ @@G@@ @Y`}@ @Y@ @Y@ Y`@@ @YS Y` @Y@ @Y`@@ Y`S @Y @Y`@@ Y@ @Y`S @Y@ @Y" ,_@ @Y@@ }@Y:`}@ }@Y}@ }@Y@ Y`@}@ }@YS Y` }@Y@ }@Y:`@}@ Y`S }@Y }@Y`@}@ Y@ }@Y:`S }@Y}@ }@Y@ }@Y@S@ S@X`}S@ S@X}@ S@X@ X`@S@ S@XS X` S@X@ S@X`@S@ X`S S@X S@X`@@@ X@ S@X`S" v S@XS@ S@X@ S@X@@ @@G`}@ @@G@ @@G@ G@`@@ @@GS G@` @@G@ @@G`@}@ G@`S @@G @@G@`@@ G@ @@G`S @@G@}@ @@GS @@GSP G`}PGP G@ G`@P GSPG`P G@P G`@P G`SGP G`@P G" Lr@ G`SPGP G@P G@P G:`}PGP G@ G`@P GSG`P G@ G:`@P G`SGP G`@P G@P G:`SPGP G@P G@P 7`}P7P 7@ 7`@P 7S7`P 7@ 7`@P 7`S7" KP 7`@ 7@P 7`S7P 7@ 7@@P@ G`}@PGP@ G@P@ G@`@@P@ GSG@`P@ G@@ G`@P@ G@`SPGP@ G@`@P@ G@P@ G`SPGP@ G@@ G@P G`}PGP G@ G`@P GSPG` G@P G`@P G" \>`SPGP G`@P G@P G`SPGP G@P G@ G:`}PGP G@P G`@ GSPG`P G@P G:`@ G`SPG G`@P G@ G:`SPGP G@P G@P 7`}P7P 7@P 7`@ 7SP7`P 7@") P 7`@ 7`SP7P 7`@P 7@ 7`SSP7P 7@P 7@P@ G`}PGP@ G@P@ G@`@@ GSPG@`P@ G@P@ G`@P@ G@`SGP@ G@`@P@ G@P@ G`SPGP@ G@P@ G@P 7SP} 7P 7SP@7@P 7PS7 ?ְ.@\ `.@..@.@.@..@S@. `.@S\ `.@..@.@.@. @#@.@.@ `@.@..@S@.S@S@S @@.@  `.@\ `..S  A   \ `. P `S `( ` P `\ `@P. P@P@@P@ Bĸc@( `@ `S P. ` `} P` `S `  P\ ``. P CǺX@P`@P`@PP@PP@PP@P`@Pq@@P@P@q@`q``qPx@P`q@P`@P@@P@P@ D£s@qq@P@P`@`@P@P@@q`q`qPq```q`qP```q``q`` Ec``q`q`q`qPqPP F G"̐   07}7007@7@7S7007@7@07S7007@7@7S7007@7@08}8008@8@@8S8@008@8"lN@08@S8008@@8@8S8008@8@0G:}G0G@G@GSG00G@G:@0GSG00G@G@G:SG00G@G@0I}I00I@IS@ISIS 4S.@  ..@q..q...qqqqqqqq 5ݦcqxqqqqqqqq 6,sqqqqqqqq`qq` 7````qq``q```qq` 8Y``q``qqq```q`\ `qq.  9ӳ. `S `( `  `\ `q. q@P( `@P `q@PS `@@P. `@@P `@@q}  :Ժ cq `S `( ` q\ `. `qqq@PS `@P `@@P `@q@P `@ `. ;վs.} P. `. S `( `  P \ `  . `P ``P`ʰ` <L````` `.``` =GS`...`.` ` ` ` ` ` ```` >wʰ\ `. `. ` `h `h `( ` ). ` `} P `S ` ` P\ `. `PS ` ` P *ڲ{ PP.@\ `.@.. P.@ `.@.S `@( `..@ PS@. `.@S\ `.@.. P.@.@.( `@ `. +۾?s@S P.@. `.@ `@.@} P..@S@ `.S@SS `@( `S @ P@.@ \ `.@. `.. ,S\ .  S (   \ .  -s(  S .  }  S (  \ .  .S    \ `. P `S `( ` P `\ `. P /Ŝ( ` `S P. ` `} P `S `( ` P\ .  0T3.@\ `.@.. .@ `.@.S `@( `..@ S@. `.@S\ `. 1᪂@.. .@.@.( `@ `.@S `.@. `.@ `@.@} ..@S@ `.S@SS `@( `S @ @.@ \ `.@. ` 2S..@P@PS `@P `@@P `@S@@P `@.@q..@.q.@.@.q@...@.qxS@. 3ͺ.q.@SS..@.q.@ʰq.@.@.@.@qʰ.@q@.q.@.ʰq.@S@.S@S.q@SSq @S@ 䡶S00 `}00Sp@p0S0} } @p0@p0}0S0}pSpS0}0}pSp Sp00hp0p}p0S0p}pp}p\ `. P `S `( ` P E `\ `. P ( `. `S P. ` `..} P. `. S `( `  ~3 P \ `  . `P S ` ` P `ʰ\ `. P `S ` !絋( ` P `\ `. P ( `. `S P. ` `..} P. `. "S S `( `  P \ `  . `P ( ` `S P. `ʰ `..} P. # `. S `( `  P \ `  . `P S ` ` P `.@.@\ .P.P....P.... $s... %tS\ ` &hs\ `\ `\ ` 's\ `\ `S     (Dz\ `. P `S `( ` P `\ `. P( ` `S P b#P0 `0 P0`0` `0P0 `0\ `0. P00`. `0P0 tS0. `0: `0 P0`0` `0P0 `0 `0S P00`S `0 xP00S `00 `0S0 PS00`0S0` `S00P0S0 `S00\ `0S0. PS000S0`. ` |S00P000S0. `S00: `0S0 PS00`0S0` `S00P0S0 `S00 `0S0S PS000S0 `S `S00P000S0S `SS0 `00S0  P00`S0`0S`0 P0`S0\ `00S0. . P00 xS0`0S`0\ P0`S0: `}00S0}  P0}0`S0}`}0S`0} P0`S0 `}00S0}S S P0 o}0S0}`}0S`0} P0`\ `. P `S `( ` P `\ `@P. P s@P@@P@@( `@ `S P. ` `} P` `S `  P\ ``.  ;3P@PS `@P `@P P@P P@PPS00 `00S0S0 P000`S0S0`0`00 P0S0`S00\ `0 60S0S0. . P000S0S0`0`00\ P00S0`S00: `}00S0S0  P00}0`S0S0`}0`00 P0S0`S00 L `}00S0S0S S P00}0S0S0`}0`00 P00S0`S00( `000S0  P000`S0S0`0`00( P0S0` ,. `@PS `@P `@@P `@@P @.@\ `.@.. P.@ `.@.S `@( `..@ PS@. $s `.@S\ `.@.. P.@.@.( `@ `.@S P.@. `.@ `@.@} P..@S@ `.S@SS `@( `S @ P Q3@.@ \ `.@. `..PS ` ` P `\ `. P `S `( `  P `\ `. P ( `. `S P. ` `..} P. `. S ` !S( `  P \ `  . `P S ` ` P `ʰS\ `S. P ` "sS `( ` P `S\ `S. P S `( `S P `.\ `ʰ.. P B `S `( ` P `\ `PS ` ` P `\ .  # S (   ʰ\ ʰ. (  S . . . Ѩ}  S (  \ . S    .@\ `. L@.. @P.@ `.@.S `@( `..@ @PS@. `.@S\ `.@.. @P.@.@.( `@ `.@S @P.@. `.@ ` C@.@} @P..@S@ `.S@SS `@( `S @ @P@.@ \ `.@. `..@P\ `. P\ P P֠p֠֠֠֠֠֠ ֠ր֠}0}}}}}}}}@}}P}}}}}ր}}`}}ր}@@@@jS@@p@@@@@@@@@@@ր@@@ @ր@@03֠֠p֠qp֠`@֠PP֠@֠@@֠@֠0`֠0֠(  ֠֠p֠֠֠֠@ր@@@ @ր@@0  IJ       .O.@..@.@.@.@.@..@@@...@.@.S@.S@..@S.@S..@.@.@  s.@ʰ.@..@@@.@@.@@ʰ.@.@@.@.@@.ʰ.@.@S@S@.S@SS@.@@SS @ @S@@.@ .@ ..@......  e.@.@..@.@.@.@.@..@@@...@.@.S@.S@..@S.@S..@.  S@.@.@ʰ.@..@@@.@@.@@ʰ.@.@@.@.@@.ʰ.@.@S@S@.S@SS@.@@SS @ @S@@.@ .@ .@... s...\ `.  `S `( `  `\ ` 0. @P( `@P `@PS `@@P. `@@P `@@}  `S `( ` \ `ր֠֠֠ր֠֠֠ր֠֠ր֠֠ր֠ ֠ր֠0֠֠ր֠֠@֠րP֠J֠ր֠`֠֠ր֠֠֠րp֠֠ր֠SSSSSSSSS SSSSSSS`SSSSSSSSSS0SSSSjSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS@@@@@@@@@ @@@@@@0@@@@@@@@@@@@@@a#@@P@@@@@@@@@@@`@@@@@@@@::::ŐŐŐŐ7S  005@@PP``ppϚs֠֠֠ ֠֠0֠֠h֠ր֠@֠P֠֠֠ր`֠֠֠֠Itory printing (right mouse button). 2. Longer songnames will be printed and cleared in full length. - SOME INSTRUMENTS HAD BEEN CHANGED AND SOME HAD BEEN REPLACED FOR OTHER INSTRUMENTS (done by K. OBARSKI) - CAUSE OF DISK-SPACE ON SECOND INSTRUMENT DISK UNKNOWN COPIED SOME INSTRUMENTS FROM HIS MUSIC-RIPPS TO IT. THE MAIDEN VERSION CONTAINS 216 INSTRUMENTS AT ALL. THE NEW VERSION CONTAINS 234 (OR 243 ?) INSTRUMENTS !!! - THIS SOUNDTRACKER-VERSION CONTAINS THREE DISKS AT ͆ALL! (ONE SONG DISK,TWO INSTRUMENT DISKS) - HINT : ALLWAYS SET THE SPEED ON THE UPPERHALF OF THE SCREEN TO '120'. DO NOT CHANGE THE SPEED VALUE, COZ THE ROUTINE WORKS IN THE TIMER-INTERRUPT, AND IF YOU SET ANOTHER SPEED VALUE, THE INTERRUPT WILL SPEED UP OR SLOW DOWN AND THAT'S NOT VERY USEFUL FOR DEMOS/INTROS/GAMES... THE ORIGINAL SPEED IS '120' AND THAT'S ONCE EVERY VERTICAL-BLANK. THE OTHER SPEED VALUE (EFFECT $0F) CAN BE USED AT ANY TIME WITHOUT ANY INFLUENCE^r TO ANY INTERRUPT. - HINT : DO NOT PRESS RESET WHILE COMPOSING - OTHERWISE THE MUZAKDATAS ARE LOST (HAHA) - HINT : CONTACT D.O.C !! (But not, if 'ya are a LOOOOOOOOOSER !!!!?) - ATTENTION : I (DR.MABUSE) just noticed that the our intro sometimes (only on the A-500) hangs up... A-1000 users will have no problems... Have joy, have fun, have seasons in the sun... ---------------------------------------------------------------------------- ERSION CONTAINS THREE DISKS AT L)4  8>Xb 4sLOADERq +  Pր !{րրրր "3րրրր #ֱ3րրրր$րրր֠րss֠֠ր֠֠֠ր֠֠֠ր֠֠&ÿat must be played by that particular ---- instrument. Inst# : This is the number of the instrument that must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. C - S 'et volume. E - Set filter on/off! F - Set speed. Info : This byte contains the additional information for the commands. ---- Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during  (M the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the cu )Q#rrent note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 Slides down 8 --- 0208 Slides down 8  *S --- 0108 Slides up 8 --- 0210 Slides down 10 etc. Volume : One of the enhancements that the V9.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sam +lple. Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. Filter: This Soundtracker version allows you to turn the lo-pass filter ------ on/off. Example: G#2 1E01 - Tur,zns the filter and the power-led off ! --- 0000 E-1 1E00 - Turns the filter and the power-led on ! Warning to all Amiga 1000 owners : Don't make jokes with the power-led because some A500 and A2000 owners will not be happy when they hear your song. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normal speed is 6. Examp-%(S}le: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speed If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the.՗ Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you are finished writing your music using SoundTracker, save it to disk. Use the function 'SAVE MODULE'. You will find at the 'MODULES'-DIR a file, which contains all muzakdatas and instruments. Load with SEKA the source of the playroutine and enter the size of saved module at the label 'DATA'. Assemble. Now load the saved module to 'DATA'. At the start of your program, call the/wc 'START' routine. Please note that the IX version of SoundTracker is not completely downwards compatible with version V1.8. Any old V1.8 song that uses no portamento or arpeggio can be used with IX without any problems. If arpeggio is used, simply remove the 1 that selects the arpeggios in V1.8. (Example : C#2 2184) If the old V1.8 song uses portamento, you will have to rewrite this a little until it sounds the same as before. The songs supplied on this disk are re-written for IX. Dl7% -------------------------------------------------------------------------- If you think the SoundTracker IX is best and DOC is great, then write to: D.O.C (Don't write this line.) PLK 089114 C 2300 KIEL 1 WEST-GERMANY If you have any questions to the police, call Germany : 110 ------------------------------------------------------------------------- ADDITIONAL INFORMATIONS AND HINTS : - THE DIRECTORY FUNCTION WAS CHANGED IN TWO WAYS : 1. You can abort the direc:1J 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 ;2I0 0?? 0 0 0 0 0 0 0 0 008߾~~s@Nx3<3|8' NNN`@83`@x08NDA3N`qp83N=4ӑJZNə ?ə`@s03NDAwN`򓓓qs080><]`@x33NDA03wNN`qp3߾qp83N6A er holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. The Keys. --------- The original (V1.8) version of the SoundTracker had a German keymap. Version IX supports a standard USA keymap and this ensures compatibility with ALL Amigas. The keys on your Amiga have been grouped to rep7mresent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. While editing: Cursor-keys move cursor. ------------- F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 8qW- Set cursor to last line of pattern. DEL - Delete note under cursor. shift + F3 - Cut selected voice of actual pattern. shift + F4 - Copy selected voice of actual pattern into copy-puffer. shift + F5 - Copy copy-puffer to selected voice of actual pattern. Special keys: ------------ shift + V - MESSAGES and GREETINX from D.O.C shift + D - DIRECTORY (left mouse button for next entry - right9b to abort.) The following keys are on your numeral pad at the right side of your keyboard. !! ---> 7 - Sets the volume from voice 1 to zero. !! ---> 4 - Sets the volume from voice 2 to zero. !! ---> 1 - Sets the volume from voice 3 to zero. !! ---> 0 - Sets the volume from voice 4 to zero. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. All instruments are listed in the preset-list. The vol%ume is allways 64 but you can change it to each value between 0 and 64. To change the other values of each instrument you have to load the preset-editor. With that tool you can change the whole preset-list. Notes. ------ C#1 3 C 2 3 / / | \| / / | Arpeggio,portamento,volume,speed and filter info. / / Command / Inst# Note to be played. Note : This is simply the note th5[g play! (some A500+A2000) Speed control during play. New voice control. Improved DIR function. Standart USA keymap. New playroutine from Obarski (Improved by Unknown of D.O.C) Plastic cursor (hehe) New scrolltexts (hoehoe) Better colors (thanx to J.C.) Patterns. --------- Any piece of music written with SoundTracker IX is build up from patterns. SoundTrack/yhoq2?DJA3@x6000011114AZ1111111111111115Bka11111111100006CM-`@@@33cNNN~@O03pSNNNN~NNNL23@NN`@Np3@~@@~NN~~NN~~~~7Dt~~~~ ~~?~?~ '?~~~~~~~r~rs~~s~rs~8E_fC~~~~~~~r?~'?~?~'?r 0 0 090: 0 0 0 0 0 0?? 0 0 0 0 0 0 0 0 00$G-%H޺+&I#'JWJ(K4)L#*M޺!+N,OA-Pdd׋.;J'RF ʉ p``` `{s???;vr'`?? g;7&~??'';~~s?~?? '';~r S%T p g?0`??vr??&? ?7&r '?'?r' '0?'?0g T``0  ??vr```?7&99'''??9 `??  UI8e0g g?s1?"?'vr#!` g7&1'%'Rs~sqg'' ?rrs?  p g?p`` ~?`@@0808Vh??vr???<9~O9&? ?7&' ~?@As080y'?'?'''>9N~~Os9 '0?'?p``'<NN@@Nx033 0g' ?p`` xN@@B?'"?vr????Dg'' W\7&' |Afrrg'%''''9OJfrsrs?`0g ?p``'<N~@NNBrsr ` `0`p`` x@@@???vr????~L~J~y``??7&' ~NAN@Ns'??X؉r'''?NLNDNg ''??p``'8NN`NO ` g p``  ?'?vr???>G`g?7&' |f'?'''8 f? ' '?p``'? YXB~ 0`p ps???1g'&' 0'''''2pg0''3!Z"O 0g g pg ?"?'?"?` g '%''%'g'' ''' ?"[#F?WJ]^{g_e`ca[{nb?2c{]d[eYf˿PQwNpp! p``` `w9@@?'vr???79?Og0s7&`?? g79o?3??''79?Oo`a ?? ''7~oh888lD|`  `  `  `  `  `  `  `  `  iЀ`  `  `  `  `  `  `  `  `  j?h`  `  `  `  `  `  `  `  `  ` k?] `  `  `  `  `  `  `  `  ` ` l?I` ` ` ` ` ` ` ` ` ` m?6` ` ` ` ` ` ` ` ` `  n/` ` ` ` ` ` ` ` ` `  o{` ` ` ` ` ` ` ` ` ` `  p?` `  q \s3-000000000000000000000000000t+g000000000000# %b##2%f##%jaNu <P"<,yN:##2M$b 9#2"<=@H@=@H@(PQNu <%b$##"<,yN:##~ <$"$й#~## <$b$й#~## <$$й#~## 9#SA$"yu}I#~QNu "$&(*,.02468:<>  u1@8 -2z-@BB29%rI49%t 9%fA%"< ЂQAvV %"y%jg <3X3XPQG% y%bBBBBBB<9%rNy%tjXBj*D"A8RAFfBXC CfBFREQ`"A8RAFfBXC CfBFREQ`Nudos.library &fa. <"<,yN:#&,y&"9&$`nf|f|lf>`<|~ffff`|f<~ |0008 8<0`<< 0`$???????#h)4#)hBy)2Nu#)4hNuxGHA0(g60(g,9r+@Qg By)2)31|LcN #l*(#*Vl3Nu#*(lNuHA,y2(gVhgL"HnNgL"HnNg"Haa(aLL"HnNLc3NsRy* y*fLBy* y#0(y* @g @g`3*` 3* y#1@1@NNu <"<,yN:#+6 y+6!|~~!|~~#+6+:A+:C$"$<3XXQNuyr_H y+6A-$<AZBdBYAdB@@dB@01BLNu y+ y2+f#&qd#hNuA% , #d# h#%N3%RNu09 4@2y,j3,jH @k 2<@0` @j@y,n0H2y,l3,lH @k 2<@0` @j@y,p y,njBy,n y,pjBy,p y,nk3,n y,pk3,pB09,n3,rB09,p3,tNuFA?Nnzz &2@LZft*4:Zft *06DNT^hz$F "&,06:@LPv 06<BZnr"(HNdp{+"Z^     ( . 4 < B N T X p t ~   8 V | \ #####$#(#N#T#Z################$$ $%%%%%&&"&(&:&B&&&&''''"','4':'J'`'l'r'''''''''I'''''((())))** *2*8*L*****++"+(+r+x+++++, ,, ,*,2,H,R,\,d,,,,,,,,,-- ---&-.-6->-F "&,06:@LPv 06<BZnr"(HNdpgIO`0|||~~<<||||t~|||8l8ll8` 8`80008`0 ~fnNu <0NuC "#|ada a@0B@H@Nu,y <I"<N:#vNu,y"yv <IN.Nu <("<,yN:# 3$xH@3$tNu~??>p3? @A# c0>`R"r)" S1!o2gff3 D1s& b'C00`ag0a0 0C8qx?` q2p 1 "@@ @ 00 8f/"bd@ 8s !a? '8p&  0s9q `0 y?y p~n ? 2`    "3` ! 1 a 0x ` 0sx0spx p'x'60`  @@|0@  |0 Ͽp  ٵ?ww? wɘ A|8` wȓy& w`y& w'y& wɐ`L 3 w~wَ{g[1#1\ֵZkZ~/ZpֽBkZxvl_3w־;^ 85kZ~k_w9blmؼ{^6 w @? w2||ɓ w2 y  w2|3 w9 p?ww  000000000000000   t Ϳ\g5͏17V+I[ҵֵK֡k[C[֯k[_Ϳѱl[cŷ7 [ 00000000000&q(O00000000000000000000000000004K000000000000000000000000000rWc'a000000000000000000000000000 Cells @st-02:pinvoice@st-02:pitchbrass @st-01:pizza\@st-02:pizza2 @st-02:poison @st-01:polysynthV@st-01:popbassF@st-01:popsnare1@st-01:popsnare2@st-01:popsnare3F@st-01:pulse @st-02:realkoto1@st-02:realkoto2 @st-02:reflex @st-02:reverb2V@st-01:richstring  z@ st-02:ridecymbalV@st-01:ringpianoV@st-02:ringtone@st-01:roombrass@st-01:rubberbass@st-02:s @st-02:sequencer @st-02:servant1@st-01:shaker~@st-01:shamus@st-02:sinbad @st-01:sinecz@Jst-02:singerbell z@st-02:siren@st-01:sixteaseh@` st-01:slapbass @ :st-02:slapbass2$@st-02:smartbrass<@st-01:smash1@st-01:smash2@st-01:snare1@st-02:snare10@st-01:snare2@st-01:snare3l@st-01:snare4@st-01:snare5@st-02:snare6F@st-02:snare7@st-02:snare8@st-02:snare9@st-02:snx.drum2V@st-02:snx.drum3V@st-01: \)softbass @st-02:solobass @st-01:soundtrackV@st-02:speowl@st-02:spoils@st-02:sqbrasst@st-01:squaresV@st-02:squint @st-01:stabst@st-02:starpeace6@st-02:stars Z@st-01:steinway z@st-02:stoehnV@st-01:strange @st-01:strings1b@st-01:strings2@nst-01:strings3 <@ st-01:strings4@st-01:strings5V@st-01:strings6V@ st-01:strings7V@st-01:strings8@st-02:stringsc @st-01:sweepB@st-02:swoopB@st-01:synbrass@st-02:synbuz:@st-01:synclaves@st-02:synpia @st-01:synthebassn@st-01:synthpiano @st-02:take H@st-02:tallic  @st-02:teapiano@st-01:techbass @st-02:telephone @st-01:theeggV@st-01:tinewaveV@st-02:trio@st-02:tubes @st-01:tunebass `@st-01:touch@st-01:voicesV@st-01:wabberstring@st-02:warmbellsn@st-02:warmth @st-01:woodblockX@st-01:wowbass @st-02:yaskme@'P#zByhaaJBy)2a^ yu)2g yw)2g y})2gA)809)2BXgR .f` y)2g y)2n zf y)2m~`V zf. y)2m`A (0f, y)2gD` zm y)2m&AC( 9zRzaBy)2` zm* znAzSz a By)2`K# r# ! va 9z"<Za(>By)2Nu y <O Q <"<a( i+NuC~A < QNua By)2NuAC.<  gQACE .<QaI22@RE .<Qa2 Ag$RE .<QaI Af2<2aNuPLST#a`9fP#p&a""#&z zg,#v&N'Z 9z3BFaNu#z#~atNu#a9f&#p&#v&#z&N'Nu#a9f89g ~nala 9~#fzaNuA (g"9~BFBA"yv\\FFgF gHmg"9~F yvz <PSQQ~A"yv 9F <QA <BQNu#av9f, ~gaVa 9~#zaNuA (g"9~BFBA"yv\\FFgH g mg yv 9F"9~FS <RQQ~A <BQNu y,tn y,rn `Gj y,rn`Nu8 9gf y 9"<W QA"y <XXXXXXXX(Q#Nua#p.9F n.<a8QNuRyt ytjNuByt 9eg 9gg(Nu 9p~g#dlaaBRpNu 9pho*#p#laa 9hѹpSpNu*yv 9p# r#l va}ܶ0a# rl#l va a# rl#l va0a# rl#l vaNu y  < @Q <O y &p QNu y &l <!`@Q y  <O QNu y  < QNu y r"y vE($< <-"<g.2gQG(L"< B(QB`NuM BBaP0a<.a:0da&.a$0 a.a0ҀBNu 0m 9 Ue Master SoundTracker is best and TNM is great, then write to: THE NEW MASTERS! P.O. BOX 705 7300 AS APELDORN NETHERLANDS If you have any questions to the police, call Germany : 110 ------------------------------------------------------------------------- ADDITIONAL INFORMATIONS AND HINTS : - USE RIGHT MOUSE TO CONFIRM SOME FUNCTIONS (LEFT: CANCEL) - USE FOR YOUR OWN SAMPLED  `]INSTRUMENTS AN OWN DISK (e.g. ST-03). - BE SURE, THAT THERE IS ENOUGH DISK-SPACE ON YOUR SOUND-DISK, ELSE ... - SOME INSTRUMENTS HAD BEEN CHANGED AND SOME HAD BEEN REPLACED FOR OTHER INSTRUMENTS (done by K. OBARSKI) - CAUSE OF DISK-SPACE ON SECOND INSTRUMENT DISK UNKNOWN COPIED SOME INSTRUMENTS FROM HIS MUSIC-RIPPS TO IT. THE MAIDEN VERSION CONTAINS 216 INSTRUMENTS AT ALL. THE NEW VERSION CONTAINS 234 (OR 243 ?) INSTRUMENTS !!! - THIS SOUNDTRACKER-VERSION CONTAINS THREE  ?c$SDISKS AT ALL! (ONE SONG DISK,TWO INSTRUMENT DISKS) ---------------------------------------------------------------------------- Improvements by TNM in the PED+ =============================== New KeyRoutine Faster scrolling Up and Down with shift+cursor keys New Charset Instrument Length: Up to 32KB ($8000) ------------------------------------------- ADDITIONAL INFORMATIONS AND HINTS : - USE RIGHT MOUSE TO CONFIRM SOME FUNCTIONS (LEFT: CANCEL) - USE FOR YOUR OWN SAMPLED  1:noteman @st-02:o @st-02:ok ?@st-01:outlawh@st-01:panfluteV@st-02:paper (@st-01:pause@st-02:peck T@st-02:perc-agogo@st-02:perc-bongo@st-02:perc-drytom (@st-02:perc-handdrum:@st-02:perc-taiko@st-02:perc-timbale@st-02:perc-timpani@st-01:perco@st-01:pingbe essdrum3@st-01:bassdrum4@st-02:bassdrum5@st-02:bassdrum8@st-01:bigbow<@st-01:blastV@st-02:blower@st-01:blubzing@st-02:bouncy:@st-02:bratz @st-02:break L@st-01:breathl@st-02:brian@st-02:bright @st-02:bubble @st-01:call@st-01:celeste j@st-02:china @st-01:chink @st-01:cinema@st-01:claps1~@st-01:claps2@st-01:claves@st-02:cliop@st-01:closehihatX@st-01:conga @st-02:cordpiano @st-01:cowbell@st-02:cowbell2@st-02:cymbal1 (@st-02:cymbal2r@st-01:dangerous @st-01:detune " g̽y@ jst-01:deepbass@st-01:digdug@st-01:digiharp@st-02:digipop @st-01:dreambells@st-02:dumpfbass @st-01:dxbassF@st-01:dxtom@st-02:elecguitar @st-01:electom@st-02:elopin Z@st-01:epiano@st-01:exbells@st-01:faerytaleb@st-02:fatbrass @st-01:filterbass @st hOb-02:friday @st-01:funbass @st-01:funkbass Z@st-01:gato @st-02:glassmute z@st-02:glockenspiel@st-01:great @st-02:growl @st-02:guitar1 @st-02:haV@st-02:hammerbasst@st-02:hapsi @st-02:heV@st-01:heavysynth$@st-01:heifer@st-02:highvibes@st-01:hiha Lt1@st-01:hihat2@st-02:hihat3@st-02:hihat4@st-02:hitbass@st-02:hitme1@st-02:hitme2 (@st-01:hooman @st-01:horns@st-02:hosbass @st-02:icerain @st-02:importdev8@st-01:jahrmarkt1$@st-01:jahrmarkt2$@st-02:jamjam @st-01:jetes@st-02:k Ո @st-02:kermie1&@st-02:kermie2 @st-02:kermie3@st-02:kermie4@st-02:kermie5@st-02:kermie6 @st-02:kermie7@st-01:korgbass@st-01:korgbeau @st-01:korgbow @st-01:korgfilter@st-01:korgstring@;st-01:koto @st-01:leader@st-01:licks @st-02:licks2 @ 4D>st-02:linnkick @st-02:longslap@st-01:magicb@st-01:marimba@st-02:master 5@st-01:mechanic1@st-01:mechanic2@st-01:metalkeys\@st-02:milbass @st-02:minimoog @st-02:monkey (@st-01:monobass @st-01:monsterbass@st-01:muteclav @st-01:nice @st-01:nightmareV@Qst-0 k. shift + F5 - Copy copy-buffer to selected voice of actual pattern. alt + F3 - Cut selected pattern to copy buffer. alt + F4 - Copy pattern into copy-buffer. alt + F5 - Copy copy-buffer to selected pattern. Instruments. ------------ You can use up to fifteen different instruments in one music-piece. All instruments are listed in the preset-list. The volume is allways 64 but you can change it to each value between 0 and 64. To change the other values of each ins e_trument you have to load the preset-editor. With that tool you can change the whole preset-list. Notes. ------ C#1 3 C 2 3 / / | \| / / | Arpeggio,portamento,volume,speed and filter info. / / Command / Inst# Note to be played. Note : This is simply the note that must be played by that particular ---- instrument. Inst# : This is the number of the instrument tha HvCt must be used to play ----- the note. When the instrument number is zero, the last selected instrument will be used. Command : This number tells SoundTracker what special functions must be ------- preformed while playing the note. These functions are as follows : 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. C - Set volume. E - Set filter on/off! F - Set speed. Info : This byte contains the additional inform K;ation for the commands. ---- Arpeggio : Arpeggio is used for simulating accords. It does this by -------- rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this  >wYobyte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte : 1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to 83 the current note. Portamento : Portamento is used for 'sliding' of the instrument. ---------- If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example : D#2 3208 Slides down 8 --- 0208 Slides down 8 --- 0108 Slides up 8 --- 0210 Slides down 10 etc. Volume : One of the enhanc ?ements that the V9.0 version provides is the ------ ability to change the volume at any time during play. When command 12 ($C) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example: C#1 1C22 - Set volume to $22 and use instrument # 1 to play the C#1 note.  / D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. Filter: This Soundtracker version allows you to turn the lo-pass filter ------ on/off. Example: G#2 1E01 - Turns the filter and the power-led off ! --- 0000 E-1 1E00 - Turns the filter and the power-led  on ! Warning to all Amiga 1000 owners : Don't make jokes with the power-led because some A500 and A2000 owners will not be happy when they hear your song. Speed: This function allows changing the speed during play. ------ You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normal speed is 6. Example: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC 3 - Set speed to 3 G-2 2F06 - Set normal speed If you load another song it will be played with the actual speed. All songs on these disk are re-written to their normal speeds. (by D.O.C) The Playroutine. ---------------- The playroutine on the SoundTracker disk is for using your music in demos, intros, games etc. It was written using the Seka-assembler and the source of the routine can directly be incorporated in your demo/intro source. When you 9k are finished writing your music using SoundTracker, save it to disk. Use the function 'SAVE MODULE'. You will find at the 'MODULES'-DIR a file, which contains all muzakdatas and instruments. Load with SEKA the source of the playroutine and enter the size of saved module at the label 'DATA'. Assemble. Now load the saved module to 'DATA'. At the start of your program, call the 'START' routine. -------------------------------------------------------------------------- If you think thVs!t9& /`4%ĂM0"e|@Axs!R"p!b0p2% ô- ;H `K-F`.HHxĈ @p NܧP\A8NO&LHA@"rutrr?K.&.L2 (@'ptM@@"` 0@@  00  O.L0$ ( P$h,x" _V@@%[cP$p&J@@ P h!x  X " $K@(@ PJE@!   V@*  E@@&  (: A0И:@NJL03J@/ p"A@+  ,N E$@ `p ^@( ` xJ* H@$!   d}\@$B?#8 A4m_$H@@/ !HKo`@ *F CaV@@$ P kOB@ @0J@%P-< AtVCP1( h 8> C j`@ CP @B!"H @SlB@ 5D@#` pM  @X|N@& A,z`@%C[7D`*(F@#  * P5AA P@"  f @-   Ph3 Hd-L@'` ! $V@ ` 8V`@$ aXm Ül\+ X_\@% p&@_@"@  nH@@&  (Z]J`CSAl?D@!  N @%Bp5>Y@@-  N@+` p x# dFCp 9K@@ p @ߠNF м@O@,@ lм Q@@* DR\@'@ ` p? 0 YA|7N@$  L6@@@* @@*`  \#|Y@. 2 !l,vG/0Q@" @ `U@! rO@@&B' !@8"Tq@) aqK@@#  V/B@/ @ `pxB\@'T$  I`@"H$%[@@-` D !!yN,v!wO@( d)deM@"C!9S@@' 0\p  @0"J@/@ B,L"   R@@"C("GX hL6{]@) @(   ,luX:  0$:0 0 X-C DO@$@  0<L@@% M\&p F@ LV@@$  MѾd.  ] @!EW@A:1T@&C!< ѪlB@%` p (C@, L b4H"wlb:8 <bhS @#BdG@ @  IP   n_@@&Cg{P@.  DRO@&BXc9 blK@%` p XQ@" ` pxaJ@@+ P (T-_@@$` 0 ,6;Y@&  x* hQ@" lZM@/ P h[@$ `{ @/  ]P 4#   8t# Hu\O8@Z@#C8l qMp:=B@'` p ) @PxE@) HT#8gl W`@. a\e k <`hU@%  4&S@+ HdJMNq pXG@ @ !;eDaAZBAY !T FhAg===@"#EpC`P hLTd 3'A6%Pe0D IBf!@pE MA` A71kA+@GJK<p S^caȆ0 HLqa =-C7?BARV@B`CC=C100`AFX RR  i*&* w A  C@@Bx`' - d8(¼ 'C`+L%$ JT $ ifPB"нFP q  (zBh_hFRPiO}@r ʆ 0L `   s!rPbİ,L^Paq,IK偐"M */B`r`Ehd U` N{;sp@W08N pyy,h`)VDM00 `0aD01  J#J|<.~K :IP%ܞ( <]AI |8QDL8R#D`d38 1 !`´)/ :P Ơƈ`@%0ø!(?0DM sؖ  2 Hx , $F 4  L a.CH`Tgp<83E"2 w3yQ+ 88 ")DCAT@YX`*_,$L T 4 `V?@P:"@A~ fa@r P,@XX@Xēx(R<4"   eI A_* @bjP jH`V@XB 0?4BpdMK0 v 68x@( 3RL QE A# DK  $  BD"NnUf_xY\$aNA"b0x(@Q ,@` P'@i $@pa D e\†! O$";BC| Wa/9!Oh=Ȑ<%h6 ,$ "r p T uB `@@`XPhAخKl.oJP(4 .Jh0 X.@DUqe_> LlKCB} "^"2H @L$ ;6&D`+$% 0' Els Ш& qp L$``C5xs@#8'(Px#&ɢ.{=F*:&<7* $A!N@[<@@lU 0431F  8 @R@@/P.,(6(  "q'A^A@T@ǀ`.@`@ұ 44C`050704`7 ~E.5#?E ] w ^É cP$%H `(pP4 @4^㓫 @,ArLc$!=ʸ(($0 gbboggCidddQA8 PA6;10΂@ȠP H(  PEAv?A @e]9 C2`p AX8b,<@bJ.&n6TB1*`b/$ v#Blwr#0(T5wnf JAp6h[sIi=4hBøӸݱȥh@' X% JPl@hPBPPA"``P`>P1)8LhQXC9 A8!4@8>#Ņ^ |.'xBP&PP{ X@40ٶ CӅ!da@Wg#x&V @ p^XX@{c0_#@q 21Up Js_ASll@m   فtI0 xxq!,x 8(   %dH@ H !`+c$ v;F ʻ \v&. \>p8|>pɀgCC2&t6FNN@4<    BEP$XbDB|"< $A4 ib0H(d``  *LD,$ld@HȠ(`hb@_@ @e@@:@\@X?5)ʀtGBᑠdADd@"D !Ffl5)ʀtGkS}-UᑠdAlDd@"D !&` 0L 0b@Fh 5(ʀtGkS}-q`Z <#AȂ ȀD2  @C"2`DdAD !d@"A`!@I`4 (@y <` 6$$kLL@V@    23+-z l  F & f ymScdgd`dd4b4f4a4e4c2`bdg+j;'!1 )3#3<<^[T99 MMXYXY/ڧbbbbbj|W=VCV#VcVVSV366F6&6f66Vxx ⼶3篲333_O]݄ݔ݌Á-z&f L̜,lymS440d4d2d6d1d5d3d7d04燀+j<^[TcFc&cfccVc6cvccNcCc#8x ⼶0000ppýD2222rr#Thdlbjfnaihfdflfbflq3`pH(D$dTL,l<"bRC#cS3s K+k[;{G'gW7wO/F&fV6vN J:Zrb.zNr$E@* @ 0,G@+  'E+ Q@u@ e` @3@*0Y@(r1B@@%YM  P@5 wP\p (1p (9p (5p (=p (3p (;p (7p (?p2@ATA@B*  /dGG Fb@ +pH8Bx|C 4$0X0vH(P /@ PGb#s&!X9<̈``D0 1bC (D0a؅.KR T`U Xpkpp1q e$ !`>ăB0 `b$$801850807P8008WE0 h)%&A%ĂIf}5sC.4pu R3,8IҐff#`8Lj`f0 0bQ HdC UV.s rep5 clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos ;next step cmp.l #64*16,patpos ;pattern finished ? bne.s rep6 clr.l patpos addq.l #1,trkpos ;next pattern in table clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 ;song finished ? bne.s rep6 clr.l trkpos rep6: movem.l (a7)+,d0-d7/a0-a6 rts chanelhandler: move.l (a0,d1.l),(a6) ;get period & action-word addq.l #4,d1 ;point to next chanel clr.l d2 move.b 2(a6),d2 ;get nibble for soundnumber lsr.b #4,d Ը 2 beq.s chan2 ;no soundchange ! move.l d2,d4 ;** calc ptr to sample lsl.l #2,d2 mulu #30,d4 lea pointers-4(pc),a1 move.l (a1,d2.l),4(a6) ;store sample-address move.w (a3,d4.l),8(a6) ;store sample-len in words move.w 2(a3,d4.l),18(a6) ;store sample-volume move.l d0,-(a7) move.b 2(a6),d0 and.b #$f,d0 cmp.b #$c,d0 bne.s ok3 move.b 3(a6),8(a5) bra.s ok4 ok3: move.w 2(a3,d4.l),8(a5) ;change chanel-volume ok4: move.l (a7)+,d0 clr.l d3 move.w 4(a3,d4),d3 ;** calc r I^epeatstart add.l 4(a6),d3 move.l d3,10(a6) ;store repeatstart move.w 6(a3,d4),14(a6) ;store repeatlength cmp.w #1,14(a6) beq.s chan2 ;no sustainsound ! move.l 10(a6),4(a6) ;repstart = sndstart move.w 6(a3,d4),8(a6) ;replength = sndlength chan2: tst.w (a6) beq.s chan4 ;no new note set ! move.w 22(a6),$dff096 ;clear dma tst.w 14(a6) bne.s chan3 ;no oneshot-sample move.w #1,14(a6) ;allow resume (later) chan3: bsr.L newrou move.w (a6),(a4) move.w (a6),16(a6) ; ×Ssave note for effect move.l 4(a6),0(a5) ;set samplestart move.w 8(a6),4(a5) ;set samplelength move.w (a6),6(a5) ;set period move.w 22(a6),d0 or.w d0,enbits ;store dma-bit move.w 18(a6),20(a6) ;volume trigger chan4: rts datach0: blk.w 11,0 dc.w 1 datach1: blk.w 11,0 dc.w 2 datach2: blk.w 11,0 dc.w 4 datach3: blk.w 11,0 dc.w 8 voi1: dc.w 0 voi2: dc.w 0 voi3: dc.w 0 voi4: dc.w 0 pointers: blk.l 15,0 notetable: dc.w 856,808,762,720,678,640,604,570 dc.w 538,508,4380,453,428,404,381,360 dc.w 339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143 dc.w 135,127,120,113,000 muzakoffset: dc.l 0 trkpos: dc.l 0 patpos: dc.l 0 numpat: dc.w 0 enbits: dc.w 0 timpos: dc.w 0 data: blk.b 00000,0 chan2: tst.w (a6) beq.s chan4 ;no new note set ! move.w 22(a6),$dff096 ;clear dma tst.w 14(a6) bne.s chan3 ;no oneshot-sample move.w #1,14(a6) ;allow resume (later) chan3: bsr.L newrou move.w (a6),(a4) move.w (a6),16(a6) ; Tp!.KUB/ c@`8 -@`a)t` w$t)@'Aa2@\!?@|%L 1Ys!H:X0`ìuy@` Hka ` ` t:̐ B PEHB0BAP0AP1 s:%!Ё1fb0 )-ث H` jSP*aE BZt 3 8c+4 bra.s arp6 arp4: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea notetable,a0 arp5: move.w (a0,d0.w),d2 cmp.w (a0),d1 beq.s arp6 addq.l #2,a0 bra.s arp5 arp6: move.w d2,6(a5) rts pitchdown: bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 add.w d0,(a4) cmp.w #$358,(a4) bmi.s ok1 move.w #$358,(a4) ok1: move.w (a4),6(a5) rts pitchup:bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 sub.w d0,(a4) cmp.w #$71,(a4) bpl.s ok2 move.w #$71,(a4) ok2: move.w (a4),6(a5) w rts setvol: move.b 3(a6),8(a5) rts setfilt:move.b 3(a6),d0 and.b #1,d0 lsl.b #1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts setspeed: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 move.w d0,speed+2 rts newrou: cmp.l #datach0,a6 bne.s next1 lea voi1(pc),a4 rts next1: cmp.l #datach1,a6 bne.s next2 lea voi2(pc),a4 rts next2: cmp.l #datach2,a6 bne.s next3 lea voi3(pc),a4 rts next3: lea voi4(pc),a4 rts replaystep: ;** work next pattern-step clr.w timpos move.l muzako^YQffset,a0 move.l a0,a3 add.l #12,a3 ;ptr to soundprefs move.l a0,a2 add.l #472,a2 ;ptr to pattern-table add.l #600,a0 ;ptr to first pattern clr.l d1 move.l trkpos,d0 ;get ptr to current pattern move.b (a2,d0),d1 lsl.l #8,d1 lsl.l #2,d1 add.l patpos,d1 ;get ptr to current step clr.w enbits lea $dff0a0,a5 ;chanel 0 lea datach0(pc),a6 bsr.L chanelhandler lea $dff0b0,a5 ;chanel 1 lea datach1(pc),a6 bsr.L chanelhandler lea $dff0c0,a5 ;chanel 2 lea datach2(pc) {{,a6 bsr.L chanelhandler lea $dff0d0,a5 ;chanel 3 lea datach3(pc),a6 bsr.L chanelhandler move.w #400,d0 ;** wait a while and set len rep1: dbf d0,rep1 ; of oneshot to 1 word move.w #$8000,d0 or.w enbits,d0 move.w d0,$dff096 cmp.w #1,datach0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne͑nZve.l d1,d2 subq.w #1,d0 init2: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init1 dbf d0,init2 addq.b #1,d2 init3: move.l muzakoffset,a0 ;** calc samplepointers lea pointers(pc),a1 lsl.l #8,d2 lsl.l #2,d2 add.l #600,d2 add.l a0,d2 moveq #14,d0 init4: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 add.l d1,d2 add.l #30,a0 dbf d0,init4 init5: clr.w $dff0a8 ;** clear used values clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.w timpos clr.l trkpos clr.l patpos ini ;** get highest used pattern add.l #472,a0 move.l #$80,d0 clr.l d1 init1: move.l d1,d2 subq.w #1,d0 init2: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init1 dbf d0,init2 addq.b #1,d2 init3: move.l muzakoffset,a0 ;** calc samplepointers lea pointers,a1 mulu #1024,d2 add.l #600,d2 add.l a0,d2 move.l #15-1,d0 init4: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 add.l d1,d2 add.l #30,a0 dbf d0,init4 init5: move.w #$0,$dff0a8 ;** clear used values move.w #$0,$dff0bV8 move.w #$0,$dff0c8 move.w #$0,$dff0d8 clr.w timpos clr.l trkpos clr.l patpos init6: move.l muzakoffset,a0 ;** initialize timer irq move.b 470(a0),numpat+1 ;number of patterns move.l #240,d0 sub.b 471(a0),d0 mulu #122,d0 move.b #$0,$bfde00 move.b d0,$bfd400 lsr.w #8,d0 move.b d0,$bfd500 move.b #$81,$bfdd00 move.b #$11,$bfde00 move.l $78,lev6save move.l #lev6interrupt,$78 rts stop_muzak: move.b #$1,$bfdd00 ;** restore timer & dma move.l lev6save,$78 move.w #$؁aI0,$dff0a8 move.w #$0,$dff0b8 move.w #$0,$dff0c8 move.w #$0,$dff0d8 move.w #$f,$dff096 rts lev6interrupt: movem.l d0/d1,-(sp) ;** jump bsr replay_muzak move.b $bfdd00,d0 move.w #$2000,$dff09c movem.l (sp)+,d0/d1 rte replay_muzak: movem.l d0-d7/a0-a6,-(a7) addq.w #1,timpos speed: cmp.w #6,timpos beq replaystep chaneleffects: ;** seek effects lea datach0,a6 tst.b 3(a6) beq.s ceff1 lea $dff0a0,a5 bsr.s ceff5 ceff1: lea datach1,a6 tst.b 3(a6) beq.s ceff2 lea $U*dff0b0,a5 bsr.s ceff5 ceff2: lea datach2,a6 tst.b 3(a6) beq.s ceff3 lea $dff0c0,a5 bsr.s ceff5 ceff3: lea datach3,a6 tst.b 3(a6) beq.s ceff4 lea $dff0d0,a5 bsr.s ceff5 ceff4: movem.l (a7)+,d0-d7/a0-a6 rts ceff5: move.b 2(a6),d0 ;room for some more and.b #$0f,d0 ;implementations below tst.b d0 beq.s arpreggiato cmp.b #1,d0 beq pitchup cmp.b #2,d0 beq pitchdown cmp.b #12,d0 beq setvol cmp.b #14,d0 beq setfilt cmp.b #15,d0 beq setspeed rts arpreggiato: ;*ڠv.* spread by time cmp.w #1,timpos beq.s arp1 cmp.w #2,timpos beq.s arp2 cmp.w #3,timpos beq.s arp3 cmp.w #4,timpos beq.s arp1 cmp.w #5,timpos beq.s arp2 rts arp1: clr.l d0 ;** get higher note-values move.b 3(a6),d0 ; or play original lsr.b #4,d0 bra.s arp4 arp2: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s arp4 arp3: move.w 16(a6),d2 bra.s arp6 arp4: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea notetable,a0 arp5: move.w (a0,d0.w),d2 cmp.w (a0),d1 beq.s arp6 qaddq.l #2,a0 bra.s arp5 arp6: move.w d2,6(a5) rts pitchdown: bsr newrou clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 add.w d0,(a4) cmp.w #$358,(a4) bmi.s ok1 move.w #$358,(a4) ok1: move.w (a4),6(a5) rts pitchup:bsr newrou clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 sub.w d0,(a4) cmp.w #$71,(a4) bpl.s ok2 move.w #$71,(a4) ok2: move.w (a4),6(a5) rts setvol: move.b 3(a6),8(a5) rts setfilt:move.b 3(a6),d0 and.b #$01,d0 asl.b #$01,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rtܚ%K s setspeed: clr.l d0 move.b 3(a6),d0 and.b #$0f,d0 move.w d0,speed+2 rts newrou: cmp.l #datach0,a6 bne.s next1 lea voi1,a4 rts next1: cmp.l #datach1,a6 bne.s next2 lea voi2,a4 rts next2: cmp.l #datach2,a6 bne.s next3 lea voi3,a4 rts next3: lea voi4,a4 rts replaystep: ;** work next pattern-step clr.w timpos move.l muzakoffset,a0 move.l a0,a3 add.l #12,a3 ;ptr to soundprefs move.l a0,a2 add.l #472,a2 ;ptr to pattern-table add.l #600,a0 ;ptr to first pa ݰ0ttern clr.l d1 move.l trkpos,d0 ;get ptr to current pattern move.b (a2,d0),d1 mulu #1024,d1 add.l patpos,d1 ;get ptr to current step clr.w enbits lea $dff0a0,a5 ;chanel 0 lea datach0,a6 bsr chanelhandler lea $dff0b0,a5 ;chanel 1 lea datach1,a6 bsr chanelhandler lea $dff0c0,a5 ;chanel 2 lea datach2,a6 bsr chanelhandler lea $dff0d0,a5 ;chanel 3 lea datach3,a6 bsr chanelhandler move.l #400,d0 ;** wait a while and set len rep1: dbf d0,rep1 ; of oneshot to 1 ޜ> word move.l #$8000,d0 or.w enbits,d0 move.w d0,$dff096 cmp.w #1,datach0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne.s rep5 clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos ;next step cmp.l #64*16,patpos ;pattern finished ? bne rep6 clr.l patpos addq.l #1,trkpos ;next pattern R in table clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 ;song finished ? bne rep6 clr.l trkpos rep6: movem.l (a7)+,d0-d7/a0-a6 rts chanelhandler: move.l (a0,d1.l),(a6) ;get period & action-word addq.l #4,d1 ;point to next chanel clr.l d2 move.b 2(a6),d2 ;get nibble for soundnumber lsr.b #4,d2 beq.s chan2 ;no soundchange ! move.l d2,d4 ;** calc ptr to sample lsl.l #2,d2 mulu #30,d4 lea pointers-4,a1 move.l (a1,d2.l),4(a6) ;store sample-address move.w (a3,d4.l) ʻ&,8(a6) ;store sample-len in words move.w 2(a3,d4.l),18(a6) ;store sample-volume move.l d0,-(a7) move.b 2(a6),d0 and.b #$0f,d0 cmp.b #$0c,d0 bne.s ok3 move.b 3(a6),8(a5) bra.s ok4 ok3: move.w 2(a3,d4.l),8(a5) ;change chanel-volume ok4: move.l (a7)+,d0 clr.l d3 move.w 4(a3,d4),d3 ;** calc repeatstart add.l 4(a6),d3 move.l d3,10(a6) ;store repeatstart move.w 6(a3,d4),14(a6) ;store repeatlength cmp.w #1,14(a6) beq.s chan2 ;no sustainsound ! move.l 10(a6),4(a6) ;r