SOUNDEffect Release 1.1 - Mai 1992 (Shareware) ----------------------------------- Dies ist die zweite veröffentlichte Version von SOUNDEffect, dem ollen Sampleverbieger. Jaja, noch muß SOUNDEffect vor einigen seiner kommer- ziellen Konkurrenten respektvoll den Hut ziehen. Doch dies - so hoffe ich zumindest - nicht mehr lange. Hier eine kurze Auflistung der besonderen Features von SOUNDEffect: 1. Du hast acht Zwischenspeicher für Samples (wahlweise auf Diskette oder im RAM). Damit kannst Du Dir ruckzuck eine Arbeitskopie von Deinem Sample machen. Das ist sehr nützlich, wenn Du z.B. einen Effekt mit verschiedenen Parametern ausprobieren willst. Dann kannst Du einige Versionen des Klangs zwischenspeichern und am Ende in Ruhe vergleichen. 2. SOUNDEffect läßt sich zu 95% über die Maus bedienen. Nur da ich aus Platzmangel meißtens numerische anstelle von Proportional-Gadgets verwendet habe, mußt Du ab und zu doch mal zur Tastatur greifen. 3. Das Sample läßt sich mit einer frei zeichenbaren Amplitudenhüllkurve modulieren. (In einer späteren Version kann man sich auf diese Art und Weise über Frequenzmodulation ein beliebiges Vibrato erzeugen.) 4. Echoabstand und -stärke lassen sich nicht wie sonst üblich nur über Zahlenangaben festlegen. Als zusätzliche Möglichkeit kannst Du Dir in einem Balkendiagramm beliebig viele Echos mit beliebigen Abstand und beliebeiger Stärke einzeichnen. So läßt sich auch leicht ein einiger- maßen gutklingender Hall-Effekt erzeugen. (Später wird es sowas auch für den Chorus-Effekt geben.) Das sollte doch eine Share von lächerlichen 5 DM wert sein! Ein Update von SOUNDEffect kostet 5 DM (incl. Disk und Versand). Hier meine Adresse: Sven Bühling H.-Danz-Str. 9 O-6530 Hermsdorf K.Nr.: 46047295 BLZ: 830 544 82 (Kreissparkasse Stadtroda) (Falls Du die Share bezahlen willst, schick bitte keine Briefmarken.) Compiliert habe ich SOUNDEffect mit der wahnsinnig tollen FREEWARE- Version von DICE. Vielen Dank an Matt Dillon!!! ***************************************************************************** Nun folgt eine kurze Beschreibung der Funktionen von SOUNDEffect. Zwischenspeicher: ----------------- Am linke Bildschirmrand befinden sich die Gadgets für die Zwischenspeicher. Diese sind in acht gleiche Gruppen unterteilt, da es genau acht Zwischenspeicher gibt. Jede Gruppe besteht aus: - einem Gadget mit einer Diskette oder einem Chip zur Auswahl, ob sich der Zwischenspeicher im RAM oder auf Diskette befindet. Man kann auch wenn der ZS belegt ist, beliebig hin und her wechseln. - einer LED, die anzeigt, ob der ZS belegt ist. - einem Knopf zur Anwahl dieses Zwischenspeichers. - einem String-Gadget, in das der Name des Samples eigetragen wird (Hier kannst Du Dir auch beliebige Notizen über das Sample machen, z.B. "Echo1".) Mit den oben etwas weiter rechts befindlichen Gadgets |-->|, |<--| und | X | kannst Du einen ZS laden, abspeichern und löschen. Graphik-Displays: ----------------- Das obere Display dient zur Anzeige des gerade bearbeiteten Samples, im unteren Display kannst Du Kurven oder Balkendiagramme zeichnen. Zwischen den beiden Displays befindet sich die Statuszeile, auf die Du immermal ein Auge werfen solltest (flatsch ;^). Zeichnen im unteren Display: ---------------------------- Gezeichnet wird mit der linken Maustaste. Den Zeichenmodus (DRAW oder POINT) kannst Du mit den beiden Gadgets links von der Statuszeile festlegen. Mit den beiden Gadgets rechts von der Statuszeile kannst Du festlegen, ob sich die Nullachse in der Mitte des Displays (|-0-|) oder am unteren Rand (|-1-|) befinden soll. Das Besondere an dieser Zeichenroutine ist, das sie stets eine durchgehende Linie von links nach rechts ergibt. Deshalb kannst Du auch im POINT-Zeichenmodus keine Punkte, sondern nur Balken zeichnen. Auch im DRAW-Modus wird nach dem Loslassen der linken Maustaste wieder eine geschlossene Linie hergestellt. Links von dem unteren Display befinden sich drei weitere Gadgets. Die oberen beiden dienen zum Laden bzw. Speichern des Inhaltes des unteren Displays. Dazu solltest Du das Disk-Panel (s. unten) aktivieren und entsprechend Directory und File auswählen. Diese beiden Gadgets müssen "gedoppelklickt" werden. Mit dem untersten dieser drei Gadgets kannst Du das untere Display löschen. Dabei wird je nachdem, ob |-1-| oder |-0-| aktiviert ist, die Linie am unteren Rand oder in der Mitte des Displays gezeichnet. Mit der rechten Maustaste kannst Du Dir einen Range markieren. Zu den Range-Funktionen komme ich später. Das obere Display: ------------------ Wenn ein Sample geladen wurde, wird dieses im oberen Display angezeigt. Die Zahlen darüber haben folgende Bedeutung: L - Länge des Samples RB - Rangeanfang RL - Rangelänge DB - Displayanfang DL - Displaylänge Einen Range kannst Du Dir wieder mit der rechten Maustaste markieren. Links neben dem oberen Display befindet sich eine Reihe von Gadgets, die ich am besten von oben nach unten erkläre: Lupe : Der markierte Range füllt danach das ganze Display aus. Damit kannst Du also einen Teil des Samples vergrößern. <-> : Zoom out X : Falls ein Range markiert wurde, wird die Markierung entfernt. <- : Scroll nach links -> : Scroll nach rechts XLupe: Es wird wieder das gesamte Sample gezeigt. Am besten, Du probierst alles mal aus. Festlegen der Abspielrate: -------------------------- Unter den Displays befinden sich die Gadgets zur Festlegung der Abspielrate des Samples. Neben dem Proportional- und dem numerischen Gadget hast Du auch die Möglichkeit, die Abspielrate direkt über Noteneingabe festzulegen, z.B. C-2, Db3, F#4, Bb3. Die Note B wird wie im englischen Notensystem üblich behandelt, also ein "deutsches" B entspricht Bb. Übrigens: Falls die eingestellte Note nicht mit der tatsächlich gespielten Tonhöhe übereinstimmt, ist das Sample nicht richtig gestimmt. Bei Musikprogrammen wie MED oder Protracker würde es also wahrscheinlivh arg krumm klingen. Abhilfe schafft die Funktion |Ch. Pitch| aus dem Others-Panel (s. hinten). Die Panels: ---------- Links oben befinden sich die Gadgets zur Anwahl der Panels. Nach dem Starten des Programms wird das Disk-I/O-Panel angezeigt. Disk-I/O-Panel: --------------- Dieses Panel läßt sich wie ein nomaler File-Requester bedienen. Mit Load kannst Du ein Sample laden. Unterstützt werden die Formate RAW, IFF und Future-Sound. Das Future-Sound-Format ist sehr ungebräuchlich, SOUNDEffect benutzt es aber, um Zwischenspeicher auf Diskette abzulegen. Mit Save wird das Sample gespeichert. Ob RAW oder IFF gesavet werden soll, kannst Du mit mit dem kleinen Gadget, das sich über dem Parent-Dir-Gadget befindet, auswählen. Play-Panel: ----------- Dieses Panel dient zum Abspielen von Sample, Range oder Display. Wenn |Repeat| aktiviert ist, wird das Sample endlos wiederholt ausgegeben. |Use Loop| hat nur Einfluß, wenn in dem Sample ein Loop gesetzt wurde. (Ein Loop ist ein Wiederholteil im Sample und wird, sobald er erreicht ist, endlos abgespielt. Damit kannst Du Dir z.B. eine endlos pfeifende Flöte basteln.) Range-Panel: ------------ In diesem Panel befinden sich die Range-Funktionen für das obere Display. |Copy| läd den Range in den Copy-Puffer. |Paste| kopiert den Inhalt des Copy-Puffers an die markierte Stelle im Sample. |Cut| "schneidet" den Range aus dem Sample heraus. |Delete| löscht den markierten Bereich. Mit den Gadgets in der zweiten Reihe kann man die Range-Grenzen verändern. Mit |St| und |End| wird ausgewählt, ob Rangeanfang oder -ende verändert werden sollen. Mit |<-| und |->| kannst Du die Range-Markierung Byte-weise verücken. Mit |0<-| und |->0| wird zu der nächsten 0 im Sample gesprungen, was ganz nützlich ist, wenn Du z.B. Samples ohne Knack loopen willst. Mit |all| wird das gesamte Sample als Range markiert. Nun sind die Gadgets in der dritten Reihe von oben dran: Mit |Ins| kannst Du den Copy-Puffer an der angewählten Stelle ins Sample einfügen. (Eine Stelle wählt man übrigens an, indem man mal kurz die rechte Maustaste clickt.) Mit |S<->B| kannst Du Sample und Copy-Puffer miteinander vertauschen. Mit |Rem| wird der vom Copy-Puffer belegte Speicher freigegeben (das erfolgt sonst natürlich automatisch am Programmende). Mit |Add| und |Mix| kann man Sample und Copy-Puffer zusammenmischen. Der Unterschied besteht darin, daß bei |Mix| vor dem Zusammenaddieren Sample und Copy-Puffer auf halbe Lautstärke reduziert werden, so daß keine Übersteuerungen entstehen können. Übrigens wird immer, wenn durch irgendeinen Effekt eine Verzerrung (bzw. Übersteuerung) im Sample entstanden ist, dies in der Statuszeile angezeigt. Falls bei |Mix| und |Add| kein Range markiert ist, wird der Copy-Puffer beginnend vom Sampleanfang dazugemischt. Falls jedoch im Sample ein Range markiert ist, wird nur in den markierten Bereich hineingemixt. Mit Append | | Bytes kannst Du freien Speicher an das Sample anhängen. Dazu brauchst Du nur die Byteanzahl in das numerische Gadget einzugeben. Diese Funtion ist z.B. nützlich, wenn Du Echos an Dein Sample anhängen willst. Mit |Sw| kannst Du den Range "rumklappen". Diese Funktion ist ziemlich nutzlos, außer Du willst Dir mal schnell ein paar Knackser in Dein Sample einbauen. |Rev| dreht den Range zur Y-Achse rum. Das bringt schon eher was (z.B. klingen falschrum abgespielte Trommeln nicht übel). Mit Shift |up| |down| | | kannst Du den markierten Berich hoch und runter schieben. Das ist eigentlich auch ziemlich nutzlos (außer Du bist der stolze Besitzer eines falsch justierten Audio-Digitizers). Der Wert muß in % angegeben werden. Brauchbarer hingegen ist |Amp|. Damit kannst das Sample um den angegebenen Wert lauter bzw. leiser drehen. Hierzu ein kurzes Beispiel: Wenn Du Sounds aus irgendwelchen Spielen ribben willst, indem Du z.B. den Speicher nach Samples durchsuchst, kann es es passieren, daß Du die Instrumente nicht einzeln, sondern aufeinander- folgend in einem File erhält. Du hast dann z.B. direkt hintereinander eine Bassdrumm, eine Snare, einen Bass und einen Syntheshizersound. Da Dir aber nun gerade die Snare so besonders gut gefällt, möchtest Du sie aus diesem File "herausschneiden". Das geht so: - mit der rechten Maustaste den Bereich, in dem die Snare ertönt grob markieren - mit |<-|, |->|, |<-0|, |->0| Rangeanfang und -ende genau setzen und mit |Play Range| überprüfen, ob genau die Snare markiert wurde - |Copy| oder |Cut| anclicken - |S<->B| anclicken ..und schon ist die Snare isoliert, und der Rest des Files befindet sich im Copy-Puffer. Edit-Panel ---------- Das Edit-Panel widmet sich ausschließlich dem unteren Display und enthält allerlei mehr oder weniger nützliche Editierfunktionen für das selbe. Die Gadgets in den oberen beiden Reihen entsprechen denen im Range-Panel, bloß daß sie den im unteren Display markierten Range betreffen. Mit Shift |X| |Y| | | kannst Du den Inhalt des Ranges um den angegebenen Wert nach links, rechts, oben und unten verschieben. Mit |Multi| wird der Inhalt des Ranges um den angegebenen Wert vervielfältigt. Mit Expand |X| |Y| | |% kannst Du den Range um den angegebenen Prozentwert in X- oder Y-Richtung ausdehnen bzw. zusammenziehen. |Sw| und |Rev| machen das gleiche, wie im Range-Panel. Mit |Backup| kannst Du Dir schnell mal eine Sicherheitskopie (im RAM) des unteren Displays machen. Mit |Undo| kannst Du diese wieder abrufen. Die vier Gadgets links neben |Backup| funktionieren noch nicht. MISC-Panel ---------- In dem String-Gadget ganz oben kannst Du anwählen, auf welchem Pfad die Disk-Zwischenspeicher abgelegt werden sollen. Es wird auch gleich überprüft, ob sich in diesem Directory schon irgenwelche abgelegte Zwischenspeicher befinden. Wenn ja, werden diese durch die LEDs angezeigt. Die Disk-Zwischspeicher werden übrigens beim Verlassen des Programms nicht gelöscht. Falls Du Deine Zwischenspeicher in einem Directory ablegen willst, solltest Du das '/' am Ende nicht vergessen. Mit |Info| wird ein Info-Text angezeigt. Mit |QUIT| und |Iconify| kannst Du das Programm verlassen bzw. Iconifizieren. Bei |Iconify| werden übrigens alle RAM-Zwischenspeicher und der Sample-Puffer freigegeben. Also am besten vorher alle RAM-ZS auf Disk verlagern, indem Du auf das Chip-Symbol clickst. Modulation-Panel ---------------- Das Modulation-Panel sieht noch etwas leer aus, aber das wird sich bald ändern, da ich hier in einer der nächsten Versionen ein Mischpult einbauen werde. In der Version 1.1 funktioniert nur die Amplituden-Modulation, die mit |AM| ausgelöst wird. Dazu zwei Beispiele: 1. Du willst ein lang aushaltendes Gitarrensample schneller ausklingen lassen: - Clicke |-1-| an. - Lösche das untere Display (mit dem untersten Gadget links von dem unteren Display). - Schalte auf DRAW-Modus (links von der Statuszeile). - Zeichne die Lautstärkenhüllkurve. Beginne etwa in der linken oberen Ecke und senke dann allmählich ab. - Stelle den Y-Range auf 50%. - Clicke |AM| an. 2. Du willst einen weich einsetzenden Synthi-Sound am Sampleanfang in der Lautstärke anheben und am Ende etwas absenken: - Falls das Sample voll ausgesteuert ist, mach es mit |Amp| im Range-Panel etwas leiser. - Clicke |-0-| an. - Lösche das untere Display. - Clicke |-1-| an. (Nicht vergessen !) - Stelle Y-Range auf 100% - Schalte auf DRAW-Modus Nun entspricht die Linie in der Mitte des Displays der jetzigen Lautstärke des Samples. Zeichne also Linie am Anfang des Samples etwas über die Mittellinie und am Ende absenkend bis zum unteren Rand. - Clicke |AM| an. Echo-Panel ------------ Mit SOUNDEffect hast Du zwei Möglichkeiten, Echos auf ein Sample zu legen. |Echo1| benutzt das untere Display zur Festlegung von Echoabstand und -stärke. So kannst Du Dir mit etwas Geschick auf einen gutklingenden Hall erzeugen. (Hall ist ja nichts weiter als ein diffuses Gemisch von vielen Echos.) X-Range | |% solltest Du dabei normalerweise auf 100% lassen. Wenn Du es jedoch z.B. auf 50% stellst, entspricht der rechte Rand des unteren Displays der Mitte des Samples. Mit Strength | |% kannst Du bestimmen, wie laut das Echo sein soll, wenn der Balken halb so hoch wie das untere Display ist. |Echo2| ist die konventionelle Möglichkeit. Du gibst den Echoabstand in Bytes oder ms (Millisekunden) ein, legst die Anzahl der Echos und den Grad der Abschwächung mit jedem Echo fest. Für beide Echos gilt: Falls ein Range markiert wurde, wird nur der markierte Bereich "geechot". Hier wieder zwei Beispiele: 1. Du willst an ein Sprachsample einige immer leiser werdende Echos anhängen: - Verlägere das Sample mit der Append-Funktion aus dem Range-Panel - Wähle den Abstand der Echos voneinander in Bytes oder in ms. - Wähle die Anzahl der Echs (z.B. 5). - Wähle die Abschwächung der Echos (z.B. 50%). - Clicke |Echo2|. 2. Du willst ein Trommel verhallen. - Verlängere das Sample. - Markiere die Ausschwingphase des Klanges und überprüfe das mit |Play Range| aus dem Play-Panel (das ist beim Verhallen von perkussive Instrumenten wichtig, da der Hall sonst sehr kratzig klingt). - Lege Rangeanfang und -ende auf Nullstellen mit |0<-| und |->0| (siehe Range-Panel) - Clicke |-1-|. - Lösche das untere Display. - Schalte auf POINT-Modus. - Stelle Strength | |% auf 50% - Zeichne viele Balken, die jedoch nicht zu hoch sein sollten (die Höhe des Displays enspricht der Lautstärke des Samples). - Clicke |Echo1|. Hierbei hift Probieren viel. Die einzenen Resultate solltest Du Dir auf die Zwischenspeicher legen, so daß Du am Ende vergleichen kannst, welcher Hall am besten klingt. Others-Panel ------------ Mit der |Ch. Pitch|-Funktion kann man ein Instrumenten-Sample stimmen, so daß bei Programmen wie MED, Oktalyzer oder Protracker, die richtigen Noten (bzw. Tonhöhen) erzeugt werden. Dabei muß die neue Rate bzw. Periode angegeben werden. Standardmäßig sind die Werte für A eingestellt. Zum Stimmen brauchst Du eine Stimmgabel ein Keyboard oder ähnliches. Verstelle dazu die Abspielrate des Samples (mit den Gadgets unterhalb der beiden Displays) so, daß ein A erklingt und clicke |Ch. Pitch| an - das war's schon. Bei ordentlich gesampelten Instrumenten ist diese Prozedur zum Glück überflüssig. Mit der Funktion |Range=Loop| kannst Du den Loop (falls einer gesetzt ist) sichbar machen. Mit |Loop=Range| wird der markierte Bereich als Loop gesetzt. Falls kein Range markiert wurde, wird durch |Loop=Range| ein ev. gesetzter Loop entfernt. Was beim Loopen zu beachten ist: - auf jeden Fall solltest Du die Rangegrenzen mit |0<-| und |->0| auf Nullstellen des Samples setzen - innerhalb des markierten Bereiches sollte die Amplitude etwa konstant bleiben, da der Loop sonst eiert - ist der markierte Range sehr kurz, klingt der Loop meist trocken und unnatürlich Es ist manchmal sehr schwer, einen ordentlich klingenden Loop zu finden. Meistens hilft nur eins: probieren, probieren ... Das war's schon mit der Dokumentation. Ich hoffe, Du kommst mit meinem Programm zurecht. Falls Du irgendwelche Fehler findest oder gute Ideen für weitere Funktionen hast teile dies mir ruhig mit. Und denk dran, wenn Du die Share bezahlt hast, kannst Du für 5 DM von mir immer die letzte Version bekommen. Die Version 1.2 ist spätestens Ende September fertig. ***************************************************************************** SOUNDEffect Release 1.1 ist Shareware, es darf nur unter folgenden Bedingungen weitergeben werden: - das Doc-File ist mit dabei - Programm und Doc-File sind unverändert - die Diskette auf der es weitergegeben wird, darf nicht mehr als 3 DM kosten (wenn Versandkosten im Preis enthalten sind, dürfen es auch 5 DM sein) - der vorherige Punkt impliziert, daß SOUNDEffect in keine kommerziellen Programmpakete eingebunden werden darf - falls ich meine Erlaubnis gebe, können einer oder mehrere der o.g. Punkte außer Kraft treten ***************************************************************************** Zum Schluß noch ein bißchen Werbung (nein, nein, nicht ausschalten!)... Falls Du jetzt vor dem Problem stehst: Du hast ein tolles Tracker-Programm (z.B. MED), und Du hast ein geniales Sampleverbiegungsprogramm, aber was Dir zum vollen Glück noch fehlt, sind die Samples - auch da kann ich Dir helfen: Und zwar mit *Sound_Lib* - DER ULTIMATIVEN SAMPLELIBRARY!!!!!!!!! ...Na ja, ich geb ja zu, "ultimativ" ist noch etwas übertrieben, da die Sound_Lib mit ihren 10 Disks, die im Schnitt zu 60% voll sind, im Vergleich zu einer Serie wie Sacrilege etwas nunja äähhm also ich meine ... (hüstel, hüstel) Aber auch gilt der alte Grundsatz: KLEIN ABER FEIN, denn - Sound_Lib ist differenzierter sortiert - Sound_Lib wird ständig erweitert - jedes Sample ist kurz dokumentiert - Sound_Lib wird mit dem Sampleauswahlprogramm SampleFinder ausgeliefert bei dem die Samplenamen zusammen mit dem Dokumentationstext angezeigt werden und durch Anclicken abgespielt werden können - Sound_Lib ist überschaubar Die Sound_Lib kostet incl. der 10 Disks und den Versandkosten 30 DM. Meine Adresse hab ich oben schon mal geschrieben. **************************************************************************** Bekannte Bugs: -------------- Einige Bugs aus der Version 1.0 hab ich mittlerweile rausgenommen, aber natürlich habe ich mir wieder ein paar Neue einfallen lassen: - mitunter kann es passieren, daß sich das Programm beim Verlassen nicht ganz von seinem Speicher trennt (es fehlen 1 - 2 KByte). Dieser Fehler trat allerdings bei meinen letzten Tests leider nicht mehr auf. - beim allzu wüsten Rumklicken mit beiden Maustasten kann es im oberen Display passieren, daß mal ein Strich von einem Range stehenbleibt. Dies tritt aber nur sehr selten auf, und außerdem hat die linke Maustaste im oberen Display keine Funktion. ***************************************************************************** Zukunftsmusik: -------------- Was werden die nächsten Versionen von SOUNDEffect bringen? - Frequenzmodulation, falls mir ein brauchbarer Algorithmus einfallen sollte (wenn Du einen kennst, der nur mit natürlichen Zahlen auskommt, wäre ich Dir für dessen Mitteilung sehr dankbar). - Standardwellenformen im Range-Panel - Namens- und Loopspeicherung bei Disk-ZS (wird bisher nur im RAM gespeichert) - Choruseffekt, wobei die Verstimmung ähnlich wie beim Echo-Effekt sowohl numerisch als auch über ein Balkendiagramm festlegbar ist - Mischpult, mit dem Du die Zwischenspeicher zusammenmixen kannst - Vektorsynthese (Mischung, bei der sich die Einzellautstärken zeitlich verändern) - Komressor / Limiter - Spectrum-Analyzer / Equalizer Für die weitere Zukunft ist geplant, daß sich sämtliche Effekte und Funktionen des Programms sequenziell abarbeiten lassen sollen. Damit kann man sich dann richtige Effektprogramme schreiben. Z.B. läßt sich dann aus einem einfachen Gitarrensample mit einem Mausklick ein Akkordsample erzeugen. Genauso lassen sich dann beliebige Kombinationen von Echo, Chorus und Amplitudenmodulation zusammenstellen. Und dann werd ich mir natürlich auch demnächst die Mühe machen müssen, die Benutzeroberfläche komplett neu zu gestalten, denn zum einen sehen die einfach umrandeten Gadgets nich besonders gut aus, und zum anderen ist für die Panels viel zu wenig Platz übrig. Aber jetzt mach ich erst mal zwei bis drei Monate Pause mit diesem Programm und werde mein erstes Spiel auf dem Amiga programmieren, das GOBEL heißen soll. Deshalb dauert es wie gesagt mit der nächsten Version etwas länger. So das war's jetzt endgültig. Ich hoffe, Du kannst mit meinem Programm was anfangen! Mach's gut! Sven