GeoHelpView.001 PRG formatted GEOS file V1.0 Write Image V2.0 geoWrite V2.1 ***** *) *>*1 G9*******.****. 3* ,9 *< *<`***3 **.****q*3 `*I@* *1*****A***9 l&****** _____________________________________ Herzlich willkommen zu: `361`40100 `361`40101 `361`40102 `361`40103 `361`40104 `361`40105 ^`1Index` _____________________________________ `2Ein Programm von:` Bert Nitsche Mittelstra~e 45 02681 Wilthen Telefon: 03592 / 31531 Dieses Programm ist Shareware, d.h. du kannst es testen & frei kopieren. Wenn es dir gef{llt oder irgendwie n}tzlich erscheint, dann mu~t du an mich ( nicht an den Vertreiber, Sharewareh{ndler etc.) die l{cherliche Sharewaregeb}hr von 10 DM zahlen. Du }berweist das Geld am besten an: Kreissparkasse Bautzen, Bankleitzahl 855 500 00, Kontonummer 4000647844 oder schickst es mir in bar. Falls du genauso arm bist wie ich, dann schicke statt dessen einfach eine unleere Disk (Demos, Mags, Spiele, Geos-Programme, Quell- codes) oder eine Packung Kekse oder was immer es dir wert ist. Besonders w}rde ich mich nat}rlich }ber selbstgemachte Musikst}cke freuen. Bei gen}gend Feedback gibt es eine stark verbesserte Version ( siehe Hilfetext ), registrierte User zahlen dann nur noch die Versandkosten. Dieses Programm wurde zu 100 % allein von mir gecoded. Ohne die Hilfe vieler Computer-Floh- markt-Leser mit ihren Tips w{re das Programm vielleicht nie zustande gekommen. Besonderer Dank geb}hrt meinen Betatestern, insbesondere Sebastian Hoffman alias An'Dastir f}r viele gute Tips & Programme, Christian Esser f}r die kosten- lose Aufr}stung meiner REU & Thomas Reisky f}r die Infos }ber den Aufbau vieler Dateiformate. Just enjoy the sound... `301`40200 `301`40201 `301`40202 _____________________________________ "GeoHelpView.001",02 `2Inhalt:` ----------------------------------------------------------- `1* ]ber den Macher` `1* Was sind Samples ?` `1* Warum das Programm entstand` `1* Funktionsbeschreibung` `1* F}r Programmierer` `1* Bekannte Probleme `1* Pl{ne f}r die Zukunft` ----------------------------------------------------------- "GeoHelpView.001",03 "GeoHelpView.001",04 "GeoHelpView.001",05 "GeoHelpView.001",06 "GeoHelpView.001",17 "GeoHelpView.001",18 "GeoHelpView.001",19 h ( nicht an den Vertreiber, Sharewareh{ndler etc.) die l{cherliche Sharewaregeb}hr von 10 DM zahlen. Du }berweist das Geld am besten an: Kreissparkasse Bautzen, Bankleitzahl `2]ber den Macher` Hallo Geos-User, mein Name ist Bert Nitsche und meinen ersten C64 habe ich Anfang 1992 von meinen Eltern geschenkt bekommen. Anfangs war ich ein richtig spiele- s}chtiger Freak; ich programmierte aber auch von Anfang an in BASIC. Au~erdem zeichnete ich Grafiken aller Art und unternahm musikalische Versuche mit verschiedenen Musikprogrammen. Ende 1992 stie~ ich durch Zufall im Kiosk einer Autobahnrastst{tte auf die Ausgabe 8/92 der 64`er. Ich fand die Zeitschrift so toll, da~ ich diese fortan jeden Monat kaufte und ein Jahr sp{ter abonierte. Inspiriert von den tollen Programmen die Monat f}r Monat vorgestellt wurden, wollte ich selbst pro- fessionell Programmieren lernen. So sparte ich monatelang Taschengeld f}r das Buch "Alles }ber Maschinensprache", was mir bis heute gute Dienste leistet. Die Befehle und die Funktionsweise von Assembler lernte ich ziemlich schnell, jedoch st|rte mich, da~ man jede kleine Routine (z.B. Linie ziehen, mathematische Operationen, ect.) komp- liziert neu programmieren mu~te. In "Das gro~e Commodore 64 Buch" las ich von den leistungs- f{higen Geos-Systemroutinen und beschloss fortan unter Geos zu programmieren. Als Assembler diente mir GeoCope. Heute frage ich mich, wie ich nur mit einem Laufwerk und diesem langsamen Pro- gramm etwas zustande bringen konnte, aber es funktionierte. Ich programmierte ein Steuerungs- programm f}r meinen selbstgebauten Bildscanner, ein Autorennspiel und viele andere Sachen. Sp{ter kaufte ich mir noch eine REU und eine 1581-Floppy. Inzwischen hatte ich auch auf dem PC meines Bruders Erfahrungen mit DOS, OS/2 und Windows gesammelt und programmierte auch in PASCAL. Au~erdem verschlang ich f|rmlich B}cher und Zeit- schriften }ber andere Computersysteme, v.a. AMIGA, Atari und Z80-Computer. Ziemlich entt{uscht war ich, als dann Ende 1996 die 64`er nur noch als Faltblatt in einem schlechten PC-Magazinerschien. Ich k}ndigte das Abo. Anscheinend war am Ende nicht einmal mehr Paul Plodder (der Leserbrief- Onkel) ein richtiger C64-Fan, von den Redakteuren (?) ganz zu schweigen. Nur durch den Tip eines Freundes stie~ ich schlie~lich auf den Computer- Flohmarkt, einem tollem Diskussionsforum f}r alle Computerfreaks. Durch eine Werbung in eben dieser Zeitschrift kam ich in den Besitz einer Go64!. Diese Zeitschrift }berzeugte mich sofort und gab mir die Zuversicht, da~ der C64 doch noch lange nicht tot ist. Seit Ende 1996 arbeite ich auch mit GeoCom. Mit dieser Programmiersprache sind sehr komplexe Programme m|glich, die mit GeoCope einfach un- m|glich gewesen w{ren. Seit September 1997 leiste ich meinen Grundwehrdienst beim BUND ab, was meine Computer - Aktivit{ten (insbesondere meine Briefkontakte) sehr einschr{nkte. Trotzdem opferte ich an den Wochenenden viel Freizeit,damit dieses Programm fertiggestellt werden konnte. Egal was die Zukunft bringt, ich bin ein Brotkasten- freak durch und durch und werde auch weiterhin diesem kleinen Computer treu bleiben. `2Was sind Samples ?` Seit ich den C64 besitze, bin ich von den vielen guten Tunes beeindruckt, die zum guten Feeling in Spielen und Demos einfach dazugeh|ren. Neben den "echten" Musikst}cken, die am Computer komponiert werden, gibt es aber auch die so- genannten Samples. Das mu~t du dir so vorstellen, da~ z.B. ein St}ck Musik }ber eine kleine Hard- wareerweiterung (den Sampler) in den Computer eingelesen wird. Der Sampler mi~t tausende Male pro Sekunde die Lautst{rke des Musikst}ckes und speichert die Werte in digitaler Form im Computer. Die Anzahl pro Sekunde einzulesender Datenwerte bezeichnet man als Samplefrequenz. Will man dieses Sample nun wieder anh|ren, so werden die Daten in gro~er Geschwindigkeit }ber das Laut- st{rkeregister des Soundchips ausgegeben. Auf diese Weise aufgezeichnete Kl{nge brauchen sehr viel Speicherplatz. Eine Sekunde Ton in Telefon- qualit{t ( 8kHz Samplefrequ. /4Bit Mono ) braucht genau 4 kB Speicherplatz, eine Sekunde in CD- Qualit{t ( 44,1kHz, 16Bit Stereo ) etwa 176 kB. Ent- scheidend f}r Speicherplatz und Klangqualit{t ist auch die Samplegenauigkeit. Bei 16Bit-Samples wird die Lautst{rke in einer Genauigkeit von bis zu 65536 Abstufungungen aufgezeichnet, bei 8Bit- Samples in 256 Stufen und bei 4Bit-Samples ( nur diese kann der C64 abspielen ) 16 Stufen. Da der C64 mit seinen 64kB keine langen Samples auf- nehmen kann, nutzten die Programmierer von Sample-Demos einen Trick. Wiederkehrende Stellen eines Musikst}ckes existieren im Speicher nur ein einziges mal. Auf diese Weise kann man auch l{ngere Samples wiedergeben. Ein weiterer Trick besteht darin, die Genauigkeit auf 2 oder 1Bit zu reduzieren und erst beim Abspielen auf 4Bit umzu- rechnen. Das spart enorm Speicherplatz aber die Qualit{t ist unglaublich schlecht. Die Qualit{t von 2Bit Samples reicht eigentlich nur f}r die Wieder- gabe von Ger{uschen, 1Bit-Samples sind kaum zu gebrauchen. Daf}r braucht eine Sekunde Sample (8kHz/1Bit Mono) nur 1kB Speicher. Der Composer liest Samples mit 4 bis 16Bit Ge- nauigkeit in Mono oder Stereo und speichert alle Daten mit 4Bit-Genauigkeit. s kML `2Warum das Programm entstand` Auf meinem Rechner l{uft die meiste Zeit Geos, andererseits h|re ich gern tolle Tunes. Geos ist schon immer ein stummes Betriebssystem gewesen denn nur selten gibt ein Programm einen Laut von sich ( z.B. der Wecker ) oder spielt im Hintergrund Musik ( z.B. Shot Out ). Ein richtiges Musikprogramm gibt es meines Wissens nicht, nur mehrere Player f}r SID-Musiken. Zuf{llig stie~ ich auf einer Diskette des Shareware-Vertreibers Stonysoft auf das Pro- gramm GeoRAW. Dieses spielt die mitgelieferten `1Samples` ab, allerdings in schlechter Qualit{t. Au~erdem war ein Konvertier-Programm enthalten, sowie ein Autostart-Programm , das eines der mit- gelieferten Samples w{rend des Bootens quasi als Begr}~ung abspielen konnte. Mein Lieblings-Sample war die Intro-Musik von StarTrek, leider war diese zu gro~, um sie w{rend des Bootens abzuspielen. Deshalb beschlo~ ich, selbst einen Player f}r RAW- Samples zu schreiben. Gleichzeitig arbeitete ich am PC an sogenannten MOD-Musiken ( MOD= Standard- musikformat des AMIGA ). Diese enthielten viele gute Samples ( v.a. Instrumente ), die ich auch am C64 verwenden wollte. Nun war entg}ltig die Ent- scheidung f}r ein Musikprogramm gefallen. Zuerst entstand der Hauptbildschirm mit all seinen M|g- lichkeiten, dann programmierte ich die Routinen zu jedem Men}punkt. Von Anfang an k{mpfte ich mit dem knappen Speicher des C64, allerdings war ein Ziel von mir, da~ das Programm auf jedem Standard-C64-System ( C64+1541 ) laufen sollte. Zwar behielt ich dieses Ziel bis zum Ende bei, aber das Arbeiten mit diesem Programm macht wirklich nur von einer RAM-Disk aus so richtig Spa~. Auch wenn du einige Funktionen des Programms als zu langsam empfinden solltest (besonders Effekte und Import), so sollte dir bewu~t sein, da~ daf}r teil- weise eine enorme Rechenleistung notwendig ist, und die entsprechenden Routinen in hochopti- miertem Assembler-Code geschrieben wurden. Schneller w{re es oft nur gegangen, wenn ich mehr Speicherplatz zur Verf}gung gehabt h{tte, der aber wurde bis auf das letzte Byte genutzt. Deshalb wird eine sp{tere Version warscheinlich eine RAM-Erweiterung erfordern, daf}r aber auch minutenlange Samples bearbeiten und Samples in nahezu CD-Qualit{t abspielen k|nnen. "GeoHelpView.001",04 `2Funktionsbeschreibung` *`1Der Begr}~ungsbildschirm` *`1Der Hauptbildschirm` *`1Die Men}s des Hauptbildschirms` ____________________________________ "GeoHelpView.001",07 "GeoHelpView.001",08 "GeoHelpView.001",09 }r Programmierer` `1* Pl{ne f}r die Zukunf` ----------------------------------------------------------- "GeoHelpView.001",03 "GeoHelpView.001",04 "GeoHelpView.001",05 "GeoHelpView.001",06 "GeoHelpView.001",02 "GeoHelpView. `2Der Begr}~ungsbildschirm` Datei erzeugen - erzeugt eine neue leere Arbeitsdatei auf einem beliebigem Laufwerk, nach der Eingabe des Namens gelangt man in den `1Hauptbildschirm` Datei |ffnen - |ffnet eine schon bestehende Arbeitsdatei auf einem beliebigem Laufwerk, mit Abbruch gelangt man wieder in den Begr}~ungsbildschirm, mit OK wird die Datei geladen und man gelangt in den `1Hauptbildschirm` Programm beenden - verl{~t das Programm "GeoHelpView.001",08 "GeoHelpView.001",08 `301`40202 _____________________________________ `2Der Hauptbildschirm` * Das `1Hauptmen}` * Die Player Icons (von links nach rechts) - {ndert den Beginn des aktuellen Sounds - {ndert die Position der Markierung (ohne Bedeutung) - spielt den aktuellen Sound in der globalen Samplefrequenz ab - {ndert das Ende des aktuellen Sounds * Die Fensterbereiche __Sound__ - }ber Rollpfeile Einstellung des aktuellen Sounds (1-18) - Anzeige des dazugeh|renden Soundnamens -T-Icon zum [ndern des Soundnamens (max. 8 Zeichen) __Steps__ - }ber Rollpfeile Einstellung des aktuellen Steps (1-255) darunter - }ber Rollpfeile Einstellung der Operation im ak- tuellen Step: +Sound abspielen (1-18) +keine Operation (NOP=No OPERATION) +Load=Nachladen einer weiteren Datei +Wait=Verz|gerung, Wartepause +End=Ende des spielbaren Step-Bereiches darunter - }ber Rollpfeile je nach aktiver Operation folgende M|glichkeiten Op. Sound - Abspielfrequenz in Hz Op. NOP - keine Einstellung Op. Load - Auswahl der nachzuladenden Datei Op. Wait - Dauer der Verz|gerung in 1/50 sec Op. End - keine Einstellung __Soundnamen__ -Anzeige der Soundnamen von jedem der 18 Sounds __Position__ -> Zoom: zeigt einen vergr|~erten Ausschnitt der Amplitude ab der Markierung darunter -Anzeige der Position der Markierung __Aktueller Soundbereich__ -> Manuell {ndern: Eingabe des Beginns & des Endes des aktuellen Sounds (min.0,max.13999, Ende>Anf.) darunter -Anzeige des Bereiches des aktuellen Sounds * Die Amplidudenanzeige Hier siehst du den Laust{rkeverlauf des gesamten Samplespeichers (14kB) in verklei- nerter Form. Die Beiden Balken mit den Pfeilen marlieren Anfang und Ende des aktuellen Sounds, der }brige Balken ist die Markierung * Das Schlie~-Icon (ganz oben links) -identisch mit Men} Datei->beenden "GeoHelpView.001",09 ~ , v H kMh H ETh `2Das Hauptmen}` Bitte Men}punkt w{hlen *`1Geos` *`1Datei` *`1Edit` *`1Options` ____________________________________ "GeoHelpView.001",10 "GeoHelpView.001",11 "GeoHelpView.001",12 "GeoHelpView.001",13 - {ndert das Ende des aktuellen Sounds * Die Fensterbereiche __Sound__ - }ber Rollpfeile Einstellung des aktuellen Sounds (1-18) - Anzeige des dazugeh|renden Soundnamens -T-Icon zum [ndern des So `2Das Geos-Men}` * Info - zeigt ein Programminfo an * Hilfsprg. -in einem Laufwerksfenster kannst du ein Hilfsprogramm starten, nach Be- endigung des selben gelangt man wieder in den `1Hauptbildschirm` _____________________________________ "GeoHelpView.001",08 __Sound__ - }ber Rollpfeile Einstellung des aktuellen Sounds (1-18) - Anzeige des dazugeh|renden Soundnamens -T-Icon zum [ndern des So `2Das Datei-Men}` * Datei schlie~en - die Datei wird gespeichert und man gelangt in den `1Begr}~ungsbildschirm` * Datei speichern - nach Auswahl des Laufwerks & Eingabe des Dateinamens wird die Datei gespeichert & man gelangt in den `1Hauptbildschirm` * Datei wiederherstellen - die letzte abgespeicherte Ver- sion ersetzt die im Speicher befindliche ACHTUNG !!!- alle Ver{nderungen seit dem letzten abspeichern werden dadurch ohne weitere Abfra- ge gel|scht ! * Datei aktualisieren - l|scht die alte Datendatei und erzeugt eine neue Datendatei mit den neuen Daten unter gleichem Namen * Datei beenden - du kommst in ein Men} mit folgenden Optionen + Datei speichern -Wie aktualisieren, aber das Programm wird danach beendet + Datei nicht speichern -Das Programm wird sofort verlassen, Ver{nderungen seit dem letzten Speichern gehen ver- loren + Abbruch -Du gelangst wieder in den `1Hauptbildschirm` _____________________________________ "GeoHelpView.001",07 "GeoHelpView.001",08 "GeoHelpView.001",08 Soundbereich__ -> Manuell `2Das Edit-Men}` * Edit ausschneiden - Der Samplebereich des ak- tuellen Sounds wird in ein Soundscrap auf dem Lauf- werk des Composers ge- speichert, der Bereich gel|scht * Edit kopieren - wie Edit-ausschneiden, aber das Soundsample bleibt er- halten * Edit einkleben - ein Soundscrap wird in den Bereich des aktuellen Sounds eingeladen * Edit l|schen - nach einer Sicherheitsabfra- ge wird der Samplebereich des aktuellen Sounds ge- l|scht * Edit `1Import:Sample` * Edit Import:GeosRAW- in einer Dateibox werden alle Samples im GeosRAW- Format angezeigt und nach Auswahl einer Datei wird diese in den Bereich des aktuellen Sounds gespei- chert * Edit `1Effekte` * Edit Export: WAV Der aktuelle Soundbereich wird im WAV-Format f}r MS Windows gespeichert (8Bit) * Edit Export: C64digi Der aktuelle Soundbereich wird als Standard C64- Sample gespeichert (4Bit) Dieses Sampleformat nutzt z.B. auch der Reflex-Tracker _____________________________________ "GeoHelpView.001",15 "GeoHelpView.001",14 h beendet + Datei nicht speichern -Das Programm wird sofort verlassen, Ver{nderungen seit dem letzten Speichern gehen ver- `2Das Options-Men}` * SampleSpeed - in einem Fenster kannst du die globale Sample- frequenz {ndern (Standard- ma~ig 8kHz) * `1Composer`- im Composer kannst du z.B. live Musik }ber die Tastatur einspielen oder Bereichs- operationen ausf}hren * Abspielen - Bietet folgendes Auswahl- men}: -Alles spielt Step1 bis Ende -ab akt. Step spielt aktuellen Step bis Ende -bis akt. Step spielt Step1 bis aktueller Step -Arbeitsbereich spielt den Arbeitsbereich ab den man im Composer- fenster festlegt * Farben {ndern - Erlaubt es dir, alle Farben des Composers zu ver- {ndern, die Einstellungen werden in einer Setup- Datei auf Disk gespeichert * Sonstiges - reserviert f}r zuk}nftige Entwicklungen _____________________________________ "GeoHelpView.001",16 chtem Pegel auf, kann }ber eine Minute dauern * Echo erzeugen- Erzeugt einen Echo- oder Hall- Effekt,ansonsten selbsterkl{rend * Resampeln- bietet 2 Optionen - Samplefrequenz verdo `Das Effekt-Men}` Achtung !!! Alle Ver{nderungen wirken sich direkt auf die Daten aus & k|nnen nicht ohne weiteres r}ckg{ngig gemacht werden. Deshalb solltest du vor Ausf}hrung eines Effektes unbedingt EDIT- KOPIEREN w{hlen. Sollte der Effekt dann nicht so gut klingen wie erhofft, dann brauchst du nur noch EDIT-EINKLEBEN w{hlen und die Ver{nderung ist r}ckg{ngig gemacht. * Sample mixen- Das aktuelle Soundsample wird mit einem anderen in einem frei w{hlbaren Mischungsver- h{ltnis gemischt * Sample faden- Der Lautst{rkeverlauf }ber das gesamte Soundsample wird durch eine Linie dargestellt, welche sich ver{ndern l{~t, Fade in = Einblendung Fade out = Ausblendung * Lautst{rke {ndern- selbsterkl{rend * Pegel optimieren- bessert Samples mit schlechtem Pegel auf, kann }ber eine Minute dauern * Echo erzeugen- Erzeugt einen Echo- oder Hall- Effekt,ansonsten selbsterkl{rend * Resampeln- bietet 2 Optionen - Samplefrequenz verdoppeln Das Soundsample wird auf doppelte L{nge konvertiert, mu~ mit doppelter Samplefrequ. abgespielt werden; der Soundbereich sollte vorher um die zus{tzliche L{nge erweitert werden, kein Qualit{tsverlust - Samplefrequenz halbieren Das Soundsample wird auf halbe L{nge kon- vertiert, mu~ mit halber Samplefrequenz ab- gespielt werden; der Soundbereich wird auto- matisch verkleinert, Qualit{tsverlust _____________________________________ `2Samples importieren` In den Composer k|nnen folgende Dateien impor- tiert werden: -PC-WAV (8-16Bit, Mono oder Stereo, beliebige L{nge, be- liebige Samplefrequenz) -PC- bzw. AMIGA-SAM (8Bit) -C64-Digis (nur 4Bit lo-hi) -alle anderen Formate die Daten in der selben Weise wie eines der genannten Formate abseichern (z.B. lassen sich einige VOC-Formate wie eine WAV-Datei laden) Dateien von GeoRAW m}ssen }ber den Men}punkt Edit-Import:GeoRAW geladen werden ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Nach Anwahl des Men}punktes erscheint ein Dateifenster, in dem alle Nicht-Geos-Dateien auf- gelistet werden. Nach der Auswahl einer Datei gelangt man in ein Optionsfenster. Wurde eine WAV- Datei ausgew{hlt, so erscheint noch ein Fenster mit Infos }ber die Datei. `2Das Import-Fenster` * Format: Hier hat man die Wahl zwischen ver- schiedenen WAV-Formaten, C64digis & SAM. WAVs & SAMs werden als solche erkannt, wenn sie die Extension .WAV bzw .SAM besitzen Samples des Reflextrackers, welche manchmal auf der Heftdiskette der Go64 erscheinen, k|nnen ebenfalls als ganz normale C64digis eingeladen werden, auch die meisten Samples des Rock- monitors ! * Bytes am Dateibeginn }berspringen: Hier k|nnen Werte bis 65535 eingegeben werden. Diese Option ist n}tzlich, wenn man z.B. das Ende einer sehr langen Datei laden will * Lese x % von 8/16Bit Daten. Mit dieser Option kannst du selbst die Qualit{t/L{nge einer Im- portierten Datei festlegen. L{dst du z.B. eine WAV-Datei, die mit 44 kHz gesampelt wurde zu 25 %, so brauchst du sie nur noch mit 11kHz abspielen und das Sample ist auch wesentlich kleiner Nach einem Klick auf OK startet die Konvertierung. Sie kann aus Geschwindigkeitsgr}nden nicht abge- brochen werden. Links unten im Importfenster zeigt ein Rechteck (das eine verkleinerte Version der Amplitudenanzeige darstellt) den momentanen Stand der Konvertierung. Bei WAV-Dateien kann vorher noch der P.C.O.-WAV- Expander aktiviert werden. Dieser verbessert den Klang schlecht aufgenommener Samples erheblich, die Konvertierung dauert daf}r aber 25% l{nger. _____________________________________ Samples in nahezu CD-Qualit{t abspielen k|nnen. "GeoHelpView",04 ich in den Besitz einer Go64!. Diese Zeitschrift }berzeugte mich sofort `2Das Composer-Fenster...` ...hat folgende Bereiche * das Step-Fenster: Hier kannst du durch eine Liste aller Steps scrollen * das Fenster Bereichsoperationen -Play -spielt den angew{hlten Ar- beitsbereich ab -Record -nach Auswahl eines Haupt- instrumentes kann man Mu- sik direkt }ber die Tastatur ein- spielen. Die Tastenbelegung ist vor dem Anspielen des ersten Tones sichtbar. Das Haupt- instrument kann jederzeit mit SHIFT+entspr. Drumtaste ge- wechselt werden Es wird solange aufgenommen, bis der Ar- beitsbereich belegt ist oder RUN-STOP gedr}ckt wurde ! -Seqenz -hast du z.B. einen Beat erzeugt der 5 Steps lang ist, so kannst du mit diesem Step z.B. die n{chsten 100 Steps f}llen,oder ihn an eine andere Stelle ko- pieren -L|schen -belegt alle Steps des Arbeits- bereiches mit der Operation NOP -Arbeitsbereich -[ndert Anfang & Ende des Ar- beitsbereiches (Step x bis Step y), alle Bereichsopera- tionen des Composer-Fensters (z.B. Aufnahme) beziehen sich auf diesen Bereich * Options -Steps einf}gen -wie der Name schon sagt -Liveplay -wie Record, aber ohne Aufnahme, Abbruch mit RUN-Stop * Abbruch -verl{~t das Composer-Fenster zum `1Hauptbildschirm` _____________________________________ "GeoHelpView.001",08 `2F}r Programmierer` Die Entwicklung dieses Programmes zwang mich zu einigen programmtechnischen Kniffen, die ich anderen Programmierern nicht vorenthalten will. Vielleicht wei~t du auch noch gar nicht, wie eine Routine ein Sample auf dem Soundchip ausgibt. Das ist jedoch im Prinzip ganz simpel: Du mu~t nur in einer Schleife jeweils ein Byte der Daten aus- lesen, dieses in zwei 4Bit-Nibbles zerlegen und Nibble f}r Nibble in immer gleichen zeitlichen Ab- st{nden in das Lautst{rkeregister des SID schreiben. Solch eine Routine ist jedoch sehr zeitkritsch, da zum Abspielen von sagen wir 30000 Werten/sec fast die gesamte Rechenzeit gebraucht wird. Mein Player nimmt neben dem Abspielen auch noch eine Tastaturabfrage vor, welche das Abspielen }ber die Tastatur erst erm|glicht. Wenn die Datenwerte nicht v|llig gleichm{~ig ausgegeben werden, so klingt das Sample schief. Ist der Bildschirm beim Abspielen angeschalten, so wird der Prozessor mehrfach durch den Videochip angehalten. Deshalb schalte ich den Videochip beim Abspielen einfach ab. In GeoCom hatte ich das Problem, das schon bald alle 128 Bezeichner aufgebraucht wurden. Des- halb habe ich z.b. nicht jedem Men}punkt ein eigenes Label zugeordnet, was beim anklicken an- gesprungen wird. Statt dessen rufen z.b. alle Men}punkte des Effekt-Men}s eine einzige Routine auf. In dieser Routine wird anhand der MouseY- Position ermittelt, welcher Men}punkt angew{hlt wurde und zum entsprechenden Modul verzweigt. Nur durch Optimierung des Speicherplatzes war das Programm }berhaupt zu realisieren. Am Ende blieben keine 10 Bytes freier Speicher mehr }brig. F}r das Liveplay- & Recordmodul sind z.B. umfang- reiche Vorberechnungen n|tig, f}r die kein Speicher mehr frei war, deshalb nutze ich den Bereich des Bildschirmspeichers, in dem normaler- weise die Amplitude dargestellt ist. Gleichzeitig setzte ich f}r diesen Bereich die Vordergrund- farbe gleich der Hintergrundfarbe. Beim Laden von WAV-Dateien wird in den gleichen Bereich z.B. eine Routinensammlung zum schnellen Konvertieren geladen. Programmspeicher kann man ebenfalls sparen, wenn man anstatt vieler PRINT-Befehle einfach l{ngere Zeichenketten mit Steuerzeichen verwendet. Au~erdem arbeitete ich im gesamten Programm mit Universalvariablen (uniint,unibyte) und versuchte, alle Realzahl-Operationen zu um- gehen. W{rend des experimentierens stellte ich auf meinem Computer ein seltsames Ph{nomen fest: Beim Abspielen ist immer ein hoher Pfeifton h|r- bar. zuerst suchte ich den Fehler im Player, sp{ter fand ich heraus, das der Soundchip auch dann einen Ton erzeugt, wenn man immer den gleichen Wert in das Lautst{rke-Register schreibt. Das reine Schreiben in das Register erzeugt also schon eine Ver{nderung im Soundchip. Ist das bei allen C64 Vielleicht hat euch das irgendwie weitergebracht, vielleicht habt ihr aber auch einen Tip an andere Programmierer. Dann solltet ihr diesen am besten in der Go64, dem CF, dem GeoMag, der Gazette oder einer anderen Publikation ver|ffentlichen ! _____________________________________ `2Bekannte Probleme` 1. Eine sehr wichtige Sache, an der aber nicht mein Programm schuld ist, sondern Geos. Unter Geos erzeugte Nicht-Geos-Dateien (z.B. WAV oder C64- Digis) bekommen automatisch einen Geos-Info- Block mit Icon etc. verpasst. Beim Kopieren solcher Dateien wird der Infoblock aber nicht mitkopiert, der Verweis auf den Info-Block bleibt aber erhalten. Das kann zur Folge haben, das auf der Zieldiskette die Icons verst}mmelt aussehen, im schlimmsten Fall kann das Directory nicht mehr angezeigt werden, bis die Datei au~erhalb von Geos gel|scht wird. Beim Kopieren der Dateien au~erhalb von Geos tritt das Problem nicht auf. Du solltest also selbsterstellte C64- Digis oder WAVs immer auf dem Datentr{ger speichern, auf denen sie archiviert werden sollen. 2. Fehlermeldung vor dem Erscheinen des Be- gr}~ungsbildschirmes. In dem Fall solltest du pr}fen, ob die beiden Dateien composer_asm & convert_asm auf dem Programmlaufwerk vorhanden sind. Sie werden unbedingt ben|tigt. 3. Gelegentliche Abst}rze oder Ausf}hrung falscher Funktionen. Du hast wahrscheinlich die Disk mit dem Composer aus dem Laufwerk genommen. der Composer mu~ aber st{ndig auf seine eigenen Komponenten zugreifen k|nnen ! 4. Das Ende des Samplebereiches geht immer ver- loren. Dann hast du wahrscheinlich die MegaBox installiert, die TopDesk V3 beilag. Sie belegt einen Speicherbereich, der vom Composer verwendet wird und kann deshalb nicht verwendet werden. _____________________________________ Am Ende blieben keine 10 Bytes freier Speicher mehr }brig. F}r das Liveplay- & Recordmod `2Zuk}nftige Pl{ne` M|glicherweise, d.h. nicht mit Sicherheit (!) k|nnten noch folgende Dinge realisiert werden: -direkt sampeln (wo bekomme ich einen Sampler her ?) -Anpassung an die SuperCPU -Nutzung einer RAM-Erweiterung (wahrscheinlich REU, um mehrere Minuten lange Samples bearbeiten zu k|nnen) -"Mehrspur-Composer" f}r die SuperCPU, abspielen mehrerer Digikan{le gleichzeitig, oder Digi+FM, Melodien k|nnen aus SID-Musiken importiert werden -mehr Effekte (Robotize,Harmonize,Soundmorphing, Waveform-Editor) Eure Reaktionen auf meinen Composer, mit dem ich einige Erfahrungen mit Samples sammeln konnte, werden entscheiden, ob sich eine Weiter- entwicklung lohnt ! _____________________________________ f dem Datentr{ger speichern, auf denen sie archiviert werden sollen. 2. Fehlermeldung vor dem Erscheinen des Be- gr}~ungsbildschirmes. In dem Fall solltest du pr}fen, ob die beiden Dateien composer_asm & convert_asm auf dem Programmlaufwerk *E(`