____ ___ ___ ___ ___ ___ ___ ____ ___ ___ ___  / /__//_ /__ / //_ //__ / //_ / / / //_ //__//_   / / //__ ___//__//__/___//__// / /_/_// // \/__  ------------------------------------------------------------------------------ - FOR ABO'S CONTACT US AT: BP:28 1170 WATERMAEL-BOITSFORT 1 BELGIUM!!... ------------------------------------------------------------------------------ - DON'T SEND ANY DISKS - ------------------------------------------------------------------------------  THE LEGENDARY >> SUBSOFTWARE << IN 87/88/89/90/91!!...  ------------------------------------------------------ Willkommen zu FACE THE MUSIC, dem achtstimmigen Soundeditor! Geschrieben von Jörg Schmidt, Copyright © 1990 MAXON Computer GmbH Es haben sich "in letzter Sekunde" noch folgende geringfügige Änderungen ergeben, die nicht mehr im Handbuch berücksichtigt werden konnten: 1. Die Abspielroutine (Verzeichnis "FTM-Player") Im Gegensatz zum Handbuch-Abschnitt 9.2 wurde der Abspielroutine doch noch ein Icon spendiert. Sie können Module nämlich auch abspielen, indem Sie ein Modul anklicken und dann mit gedrückter Shift-Taste PlayFTM "doppelklicken". Übrigens können Sie den Aufruf von Songs über Workbench am Modul "Trainings-Song" ausprobieren (doppelklicken, Sie wissen schon...). Von Workbench aus aufgerufene Songs lassen sich nur mit dem Schließgadget beenden, während das bei Aufruf von CLI ja eingestellt werden kann (hier voreingestellt ist Abbruch mit irgendeiner Taste). Im File "Demo.asm" wird die Einbindung der Abspielroutine in Assembler gezeigt. Wie bei Assemblerprogrammierung üblich, wurde hier auf Icons für die Workbench verzichtet. An "Demo.asm" (Quelltext) und "Demo" (aus- führbares Programm) können Sie also nur über CLI gelangen! "Demo.asm" ist auch das Beispiel für die Einbindung von "PlayFTM" in C: Gehen Sie in den Assembler-Modus (z.B. #asm bei Aztec C) und übernehmen Sie die entsprechenden Programmteile. "Demo.AmigaBASIC" und "DEMO.GFA" zeigen die Einbindung in die ent- sprechenden BASIC-Dialekte. Diese Programme können nicht direkt durch Anklicken gestartet werden, es sei denn Sie stellen die Pfade Ihres AmigaBASIC- oder GFA-Interpreters über "Info" von der Workbench aus ein. Sonst sollten Sie zuerst den Interpreter laden und dann das Programm. Es sind noch drei zusätzliche Unterroutinen bei PlayFTM integriert worden: "WaitSongOver" (Offset 44) (Keine Parameter) Wartet schlicht und einfach, bis der Song zuende ist oder bis eines der Ereignisse eingetreten ist, die bei "StartPlay" in D3 angegeben waren. "WaitSongOver" wartet betriebsystemkonform, d.h. der Task liegt während der Wartezeit "auf Eis", verbraucht also keine Rechenzeit, die andere Tasks brauchen könnten. Beispielaufruf: WaitSongOver EQU 44 ... JSR WaitSongOver(A5) ;Warten bis Song zuende ... "AskSongOver" (Offset 48) (Hinterher D0=0 oder <>0) Bei "WaitSongOver" kann Ihr Task außer warten nichts anderes mehr machen. Die Routine "AskSongOver" fragt nur einfach ab, ob inzwischen der Song zuende ist oder ob der Anwender ein Abbruchereignis gemäß dem BreakFlag, das er bei "StartPlay" in D3 übergeben hat, eingetreten ist. Die Routine kehrt sofort zurück mit dem Ergebnis in D0: Wenn der Song zuende ist/ab- gebrochen wurde ist das Ergebnis TRUE (also D0<>0), ansonsten FALSE (D0=0). "AskSongOver" können Sie z.B. in einer Schleife aufrufen, in der Sie noch etwas anderes machen lassen, während im Hintergrund der Song läuft. Auf jeden Fall müssen Sie wissen, daß allein das Abbruchereignis (z.B. Druck auf eine Maustaste) den Song noch nicht stoppt! Dafür müssen Sie selbst sorgen, z.B. indem Sie "StopPlay" aufrufen. Beispielaufruf: AskSongOver equ 48 Schleife: ... ;Hier macht Ihr Programm was es will JSR AskSongOver(A5) ;Aber auch gelegentlich mal prüfen, ob der TST.L d0 ;Song zuende ist/Abbruch gewünscht ist! BEQ Schleife ;Kein Songende in Sicht -> Weitermachen! ... ;Jetzt könnten Sie z.B. StopPlay aufrufen "CallStack" (Offset 52) Diese Routine ist eigentlich nur für AmigaBASIC- und evtl. C-Programmierer gedacht. Bei diesen Sprachen geschieht die Parameterübergabe nicht über Register, sondern über den Stack. Das Hauptprogramm muß dann nach folgendem Schema aufrufen, um die Parameter korrekt zu übergeben: CallStack(RoutinenOffset,Ergebnis,ParameterD0,ParameterD1,...,ParameterD7) Dies ist wieder nur ein Schema, die exakte Syntax entnehmen Sie bitte den Beispielprogrammen. Alle Variablen müssen 32-Bit-Integerzahlen sein: RoutinenOffset: Der Offset der eigentlich gewünschten Routine Ergebnis: In dieser Variable landet das Ergebnis. ParameterD0: Eingabeparameter, den die gewünschte Routine in D0 erwartet. ParameterD1: Eingabeparameter, den die gewünschte Routine in D1 erwartet. ... ParameterD7: Eingabeparameter, den die gewünschte Routine in D7 erwartet. Ein gutes Beispiel für die Anwendung der "CallStack"-Funktion ist das AmigaBASIC-Beispielprogramm im Verzeichnis "FTM-Player". 2. Die mitgelieferten Samples: Die auf den Disketten befindlichen Samples sind alle im IFF-Format, Sie können sie also mit entsprechenden Programmen leicht nach eigenen Wünschen umgestalten. Natürlich ist die Auswahl der mitgelieferten Samples subjektiv: Je nach Musikgeschmack werden Sie sie mehr oder weniger gut gebrauchen können. Es gibt sehr viel mehr FTM-Samples, von denen wir natürlich nur einen Ausschnitt auf diesen zwei Disketten haben unterbringen können. Weitere Sample-Disketten werden bei entsprechender Nachfrage bei MAXON erscheinen. Für weitere Samples sei die Anschaffung eines Soundsamplers mit Software empfohlen, oder schauen Sie sich mal im PD-Bereich nach Musik/Sample-Disketten um! 3. Spezialeffekte: Zunächst zwei Änderungen im Handbuch: Auf Seite 63 im 2. Abschnitt muß es heißen "...können Sie diese mit dem Joystickknopf jederzeit abbrechen". Das war technisch nicht anders möglich. Der letzte Satz des Kapitels 8.4.3.2 geht natürlich noch weiter: "...Wenn Sie wissen, wieviele Ticks zwischen zwei Zeilen vergehen (z.B. 6 bei 16 Zeilen pro Takt), können Sie ganze Rhythmen in der Effekt- Sprache komponieren, die dann synchron zum Rest des Songs laufen. Diese Synchronität wird dadurch erreicht, daß Sie zwischen den Instrumenten- Anschlägen genau so viele Ticks warten, wie zwischen zwei Zeilen vergeht. Wenn der Rhythmus im Effekt aber um einen oder zwei Ticks versetzt ge- spielt wird, erzielt man einen "Groove", der bis jetzt eigentlich nur menschlichen Schlagzeugern vorbehalten war. Je nachdem ob man das Schlagzeug gegenüber dem Rest des Songs ein wenig nach vorne oder hinten verschiebt, entsteht ein schleppender oder treibender Effekt. Wenn das Schlageug gegenüber dem Rest des Songs unregelmäßig verschoben wird (also gewissermaßen 'schlecht' gespielt wird) ist das Schlagzeug ganz 'vermenschlicht'." Nun zu den Demo-Effekten: Das Verzeichnis "FTM-Effects" beinhaltet einige Demo-Effekte, die Sie in FTM einladen können und direkt beim Klimpern mit einem Sample (das Sie natürlich auch erst laden müssen) ausprobieren können. Sehen Sie sich die Effekte genau an und versuchen Sie, sie zu verstehen. Manche Effekte sind mit einfachen (abklingenden) sog. One-Shot-Samples sinnvoll, andere funktionieren nur mit Endlos-Samples. Probieren Sie aus, wie sich die der Effekt auf verschiedene Samples auswirkt! Effekte, die nur innerhalb eines Songs sinnvoll sind, werden in den Demo-Songs im Verzeichnis "FTM-Songs" vorgeführt: "Phasing-Demo" zeigt den Phasing-Effekt, den man durch den SEL-Befehl "DETUNE = " bewirken kann: Auf zwei benachbarten Kanälen wird das gleiche gespielt, einer wird jedoch geringfüg höher abgespielt als der andere, wodurch das Phasing entsteht. "Rhythmus-Demo" zeigt, wie man mit der SEL-Sprache sogar einen kompletten Rhythmus programmieren kann: Der Effekt EF01 erzeugt Bass- und Snaredrum, der Effekt F2 spielt ständig einen HiHat-Beat. Alle vier Takte wird ein Fill-In erzeugt (ein Trommelwirbel, der den stampfenden Dauerrhythmus gelegentlich auflockern soll). Auch dieses Fill-In ist vollständig im Effekt definiert. Da Sie in der Soundeffekt-Programmiersprache volle Kontrolle über alle Sound-Parameter haben, können Sie so komplexe Rhythmen programmieren, die über die Notenschreibweise im Song-Editor gar nicht realisierbar wären. FTM verwandelt den Amiga hier also in einen voll programmierbaren Drumcomputer. Und da wir in der Soundeffekt-Pro- grammiersprache ja nicht nur volle Kontrolle darüber haben, WAS und WIE, sondern auch WANN etwas gespielt werden soll, ist es kein Problem, den so programmierten Rhythmen einen sogenannten "Groove" zu verleihen: Ein guter Schlagzeuger verstärkt die Wirkung seines Rhythmus dadurch, daß er nicht (wie ein Drum-Computer) punktgenau auf den Schlag des Metronoms, sondern leicht zeitversetzt nach vorne oder hinten spielt. Der Rhytmus kann auf diese Weise schleppend oder vorwärtstreibend wirken. Bei der FTM-SEL-Sprache können Sie das realisieren, indem Sie z.B. vor Beginn des Rhythmus' einen Tick warten lassen. Der Rhythmus wird dann leicht zeitversetzt zum Rest des Songs gespielt. "Triolen-Demo" zeigt die Programmierung von Sextolen, etwas, was bisher auch noch auf kaum einem Amiga-Musikprogramm realisiert werden konnte. Der HiHat-Track wird durch den Effekt erzeugt, in dem der HiHat in der entsprechenden Geschwindigkeit angeschlagen wird. Das ist möglich, da Sie in der Soundeffektsprache ja nicht an das grobe Zeilenraster des Songs gebunden sind. Zwischen jedem HiHat-Schlag wird acht Ticks gewartet, so daß sich genau 12 Schläge auf einen Takt verteilen: Das Triolen-Feeling entsteht. Natürlich können Sie nicht nur Rhytmen, sondern auch alle möglichen anderen Patterns nach diesem Schema programmieren, z.B. eine sich mehr oder weniger wiederholende Basslinie, ein oft verwendetes Riff usw. Mit den "ON Ereignis GOTO ..."-Befehlen von SEL können Sie den laufenden Effekt sogar von außen Steuern, indem Sie z.B. programmieren, daß jedesmal, wenn im Song eine neue Note im Track kommt, ein Fill-In erzeugt wird. Hier sind - wie bei jeder Programmiersprache - Ihrer Phantasie keine Grenzen gesetzt! Hier nun ein Aufruf an alle Musik/Effekte-Programmierer: Wenn Sie besonders gelungene Soundeffekte erstellt haben (und natürlich entsprechende Songs), dann sammeln Sie diese und schicken Sie sie uns! Ihre Werke können dann in die KICK-PD-Serie aufgenommen werden. Helfen Sie mit, eine umfangreiche FTM-Musikbibliothek zu erstellen, die allen Anwendern zugute kommt! BEACHTEN SIE DIE RECHTLICHEN HINWEISE IN ABSCHNITT 9.4 DES HANDBUCHS!!! ^^ hehehe ^^ Spreadpoint rules Schicken Sie Ihre Songs/Effekte/Lob/Kritik/Fragen an: MAXON Computer GmbH FTM-Support Industriestr. 26 W-6236 Eschborn Wir warten gespannt auf Ihre Post und wünschen Ihnen bis dahin viel Spaß mit FACE THE MUSIC!