Home
Cabel Benutzerhandbuch
Contents
1. Abbildung 6 6 Frequenzmodulation mit Cabel Abbildung 6 6 zeigt die einfachste M glichkeit der Frequenzmodulation Das verst rkte Signal von SineVco 1 moduliert die Frequenz von Sine Vco2 Das Instrument finden Sie unter examples fm_basic cw Wenn Sie es starten h ren Sie einen 300 Hz Ton mit einem ziemlich extremen Vibrato Solange die Frequenz von Si neVco 1 noch unterhalb des h rbaren Frequenzbereichs von 20 Hz liegt nehmen wir die Frequenzmodulation als Vibrato wahr Wenn Sie nun mit dem frq Parameter von SineVco 1 und dem gain Parameter von Amp 3 spielen stellen Sie fest da die zwei Sinusoszillatoren in der Lage sind komplexe Frequenzspektren zu erzeugen Der Cabel Patch examples fm_example cw zu sehen in Abbildung 6 7 ist ein Beispiel f r ein FM Instrument Dabei steuert SineVco 2 die Frequenz von SineVco 5 Die St rke der Modulation also die Verst rkung des Signals von SineVco 2 wird durch den H llkurven generator AdsrLinMidi 20 geregelt soda sich das erzeugte Frequenzspektrum ber die Zeit ndert 54 KAPITEL 6 BEISPIELE File Modules Options i 2 ControlMultiply 16 pipes Amp 6 MidiNoteln 1 ind pro a A di ControlAdd 19 velscale frq in2 i inl sum minafttch note ControlMultiply 18 W san in2 A maxafttch vel AdsrLinMidi 20 inl pro afttch in2 Su A u PcmMonoOut 22 in ControlMultiply 17 inl pro 100 lv autoplav Abbildung 6 7 FM Instrument 6
2. type bool getModulesObjects self tree True Return list of modules with realtive paths as names Parameters tree Build tree of modules recursive list of tuples type bool Inherited from object __delattr_ _getattribute_ _hash__ new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 9 3 2 Instance Variables 91 Class XmlWorkspaceReader Module model xmlReader Description searchPath Path to directory with XML modules files type str A 9 4 Class XmlWorkspaceReader _ builtin__ object XmlWorkspaceReader XmlWorkspaceReader Reads Xml Workspace files cw A 9 4 1 Methods __init__ self fileLocation controller Standardconstructor Parameters fileLocation Path to a saved workspace file type string controller CabelController type view controller CabelController Overrides _builtin__ object __init__ Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _ setattr__ str A 9 4 2 Instance Variables Description additionallnfo A dictionary mapping additionallnfo Parameter names to its values string connections A list of dictionaries with the keys fromModuleld fromVarld toModuleld and toVarld for the connections saved in Its value types are int type list fileName Name of the saved workspace file without extension CW type string continued on next page 92 Module model xmlRe
3. notifyObservers self arg None If this object has changed as indicated by the hasChanged method then notify all of its observers and then call the clearChanged method to indicate that this object has no longer changed Each observer has its update method called with two arguments this observable object and the arg argument Parameters arg Data representing the change in Observable type object removeObserver self observer Remove observer from list of observers Parameters observer Observer to remove type Observer FesumeObseryationgef EEE setChanged self Indicated that this object has changed suspendObservation self Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 5 2 Class Observer _ builtin__ object Observer Module model observer Class Observer Known Subclasses CabelController CabelFrame CabellOTextCtrl CabelStatusBar CabelValueFrame CsoundGenerator Observer A class can inherit from Observer interface when it wants to be informed of changes in observable objects A 5 2 1 Methods Standard constructor Overrides __builtin__ object __init__ update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o he change Parameters observable The observa
4. Name Derio O FULLMODULENAMES Value 5 type int MODULEDELETEWAR Value 6 type int NING WORKSPACEHEIGHT Value 2 type int WORKSPACEWIDTH Value 1 type int ZOOM_FACTOR_DEFA Value 14 type int ULT ZOOM_INDIVIDUAL_A Value 13 type int CTIVE ZOOM_LASTVALUE Value 16 type int 108 Module view configurator A 11 Module view configurator A 11 1 Class CabelConfigDialog _ builtin__ object 7 wx _core Object wx _core EvtHandler E wx _core Window E wx _windows TopLevel Window 7 wx windows Dialog CabelConfigDialog A 11 1 1 Methods self parent cfg Overrides wx windows Dialog onApply self evt onCancel self evt O 2 Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ 109 Class ConfigBooleanCheck Module view configurator A 11 2 Class ConfigBooleanCheck _ builtin__ object E view configurator ConfigControl _ builtin__ object 7 wx _core Object E wx _core Sizer 7 wx _core BoxSizer ConfigBooleanCheck A 11 2 1 Methods __init__ self parent id configParser configBoolean Var size Overrides view configurator ConfigControl __init__ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation Inherited fro
5. Save Bottom Pane Settings zoom Module Zoom Enabled Default Zoom Factor 125 0 Ja Abbildung 3 3 Der Reiter User Interface im Konfigurations Dialog 4 Cable Connection In der Konfigurationsgruppe Cable Connection lassen sich die Anzeige Eigenschaften der Patchkabel ver ndern e Die Farbe der Patchkabel Cable Colour kann in einem Farbauswahldialog wie in Abbildung 3 4 dargestellt ausgew hlt werden e Der Grad in dem die Patchkabel auf der Arbeitsfl che durchh ngen wird durch den Wert Cable Sagging eingestellt 22 KAPITEL 3 EINSTELLUNGEN IM OPTIONS MEN Hue a1 Bedi so E Saturation 100 El Green 55 E Value 31 Blue 0 E Color Name 503700 Palette EHEN N BE BB Abbildung 3 4 Der Farbauswahldialog von Cabel a 5 Save Bottom Pane Settings Das Kontrollkastchen Save Bottom Pane Setting legt fest ob Sichtbarkeit und ausgewahl ter Reiter des unteren Fensters Python Shell und Messages gespeichert werden 6 Zoom In der Konfigurationsgruppe Zoom kann das Zoomen von einzelnen Modulen aktiviert bzw deaktiviert werden Kontrollk stchen Module Zoom Enabled und der vorbelegte Vergr erungs bzw Verkleinerungs Faktor in Prozent Default Zoom Factor angegeben werden Ist diese Option aktiviert so k nnen einzelne Module in deren Kontextmen vergr ert bzw verkleinert werden 3 3 3 Verzeichnisse Im Reiter
6. Rechteckwellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt eine periodische Rechteckwelle symmetrische Pulswelle mit der eingestellten Amplitude Amplitude Startphase des Oszillator Signals Ausgabe des Oszillator Signals als Kontroll Signal 44 KAPITEL 5 MODULE 5 7 10 TriangleLfo TriangleLfo 1 Dreieckwellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt eine periodische Dreieckwelle mit der eingestellten Amplitude 5 8 Sequencing 5 8 1 Sequencer Sequencer 1 step out reset gate steps vall val2 val3 val4 val5 val6 val7 val8 Acht Schritt Sequencer Bei jedem ankommenden Trigger Signal gibt Sequencer den n chsten seiner Werte aus und springt beim letzten wieder zur ck auf den ersten Bei einem ankommenden Reset Signal springt der Sequencer ebenfalls auf den ersten Wert zur ck Zus tzlich wird ein Gate Signal ausgegeben das 0 ist falls der aktuell ausgege bene Wert 0 ist und 1 f r alle anderen Werte Das Trigger und Reset Signal kann jedes Signal sein das vom Wert 0 auf einen Wert gleich 1 oder h her springt Als Trigger Signal bietet sich ein PulseLfo Modul an 5 9 SOUND SOURCES 45 Reset Signal springt auf den ersten Wert zur ck 5 9 Sound Sources 5 9 1 Noise Noise 1 amp out Rauschgenerator Noise erzeugt wei es Rauschen also einen Zufallswert zur Audio Rate mit der eingestellten Amplitude mp Amplitude des Rauschens out We
7. Class Connection Module view connection drawRelative self de origin zoom 100 Draw this connection relative to origin in our workspace Parameters dc Device context on which to draw type wx DC origin Actual orgin of workspace type wx Point zoom Zoom of Connection default 100 type int Calculates the 3 colours of a cabel connection out of the basic value in config xml Return Value A dictionary with the entries shade midtone and highlight type dict of wx colour getSagging se Get the sagging of connection cables as saved in config xml Return Value Sagging of cable connections type int Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 12 1 2 Instance Variables Description config View related config vars type tools config View endPt End Point of connection nV emo startPt Start point of connection EEE es 120 Module view connection Class ModuleConnection A 12 2 Class ModuleConnection _ builtin__ object E view connection Connection ModuleConnection Graphic class for module connections A 12 2 1 Methods __init__ self outModule outputNum inModule inputNum Standard constructor Parameters outModule Start module of connection type view module Module outputNum Output number of start plug on outModule type int inModule End module of connection type view module
8. Delay Zeit in Sekunden Normalisierter Sustain Level Release Zeit in Sekunden H llkurve als Kontroll Signal 5 7 MODULATORS 41 5 7 2 AdsrLinTrigger AdsrLinTrigger 1 trigger env amp atk dec slev stime rel Kontroll Signal getriggerter linearer ADSR H llkurvengenerator Dieser H llkurvengene rator erzeugt eine klassische lineare ADSR H llkurve Attack Decay Sustain Release AdsrLinTrigger wird durch ein ankommendes Trigger Signal gestartet Dieses Trigger Si gnal kann jedes Signal sein das vom Wert 0 auf einen Wert gleich 1 oder h her springt Als Trigger Signal bietet sich ein PulseLfo Modul an Trigger Kontroll Signal Amplitude auf die die normalisierte H llkurve skaliert werden soll Attack Zeit in Sekunden Delay Zeit in Sekunden slev slev Normalisierter Sustain Level Sustain Zeit in Sekunden Release Zeit in Sekunden e H llkurve als Kontroll Signal 5 7 3 EnvFollower EnvFollower 1 in out H llkurvenfolger EnvFollower gibt die Amplitude des ankommenden Audio Signals als Kontroll Signal aus in Audio Signal Eingang out Amplitude des ankommenden Audio Signals 5 7 4 PulseLfo PulseLfo 1 frq out amp phi 42 KAPITEL 5 MODULE Pulswellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt einen pe riodischen kurzen positiven Impuls mit der eingestellten Amplitude Dadurch eignet sich PulseLfo ideal als Trigger Signal fiir andere Module Amplitude
9. EEE OO outModule Start module of connection S pero moteto O O outputNum Output number of start plug on outModule pe Inherited from Connection config p 119 endPt p 119 startPt p 119 123 Module view controller A 13 Module view controller A 13 1 Class CabelController _ builtin__ object 7 model observer Observer CabelController CabelController Controller and event handling for CabelFrame A 13 1 1 Methods init__ self model view Standard constructor Parameters model Corresponding model for this controller type model workspace Workspace view Corresponding view for this controller type view workspace CabelFrame onClose self event Respond to the Frame close event Parameters event type onKey self event Respond to key events Parameters event Event associated with this function type wz Event 124 Module view controller Class CabelController onMenuExit self event Respond to the Exitmenu command Parameters event Event associated with this function type wz Event onMenuExportToCsd self event Respond to Export to CSDmenu command Parameters event Event associated with this function type wz Event onModulesMenu self event Listener for the Module menu Parameters event Event associated with this function type wr Event onMouseLeft Delick self event Respond to left mouse button double click on workspace Para
10. Startphase des Oszillator Signals Ausgabe des Oszillator Signals als Kontroll Signal 5 7 5 RampLfo RampLfo 1 frq out amp phi Invertierter S gezahnwellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt eine periodische invertierte S gezahnwelle mit der eingestellten Amplitude Amplitude Startphase des Oszillator Signals Ausgabe des Oszillator Signals als Kontroll Signal 5 7 6 SampleAndHold SampleAndHold 1 trigger out in Abtast und Halte Modul SampleAndHold erzeugt aus dem ankommenden Signal ein treppenf rmiges Kontroll Signal Dabei wird das ankommende Kontroll Signal bei jedem Trigger Impuls abgetastet sample und bis zum n chsten Trigger Signal am Ausgang gehalten Das Trigger Signal kann jedes Signal sein das vom Wert 0 auf einen Wert gleich 1 oder h her springt Als Trigger Signal bietet sich ein PulseLfo Modul an Trigger Kontroll Signal in Ankommendes Kontroll Signal out Treppenf rmiges Kontroll Signal 5 7 MODULATORS 43 5 7 7 SawLfo Sawlfo 1 frq out amp phi S gezahnwellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt eine periodische S gezahnwelle mit der eingestellten Amplitude 5 7 8 SineLfo SineLfo 1 frq out amp phi Sinuswellen Niederfrequenz Oszillator Dieser Niederfrequenz Oszillator erzeugt eine pe riodische Sinuswelle mit der eingestellten Amplitude 5 7 9 SquareLfo SquareLfo frq out amp phi
11. 1 1 Der S gezahn Oszillator Zun chst beginnen wir mit einem einfachen Instrument das einen konstanten Ton mit einem S gezahn Oszillator erzeugt Den S gezahn Oszillator erhalten Sie indem sie entweder auf das Modules Men klicken oder mit der rechten Maustaste auf einen freien Bereich des Cabel Arbeitsplatzes klicken um das Modules Kontextmen zu ffnen W hlen Sie im sound sources Unterverzeichnis das SawVco Modul aus Um ein Audio Signal an die Soundkarte schicken zu k nnen ben tigen Sie noch einen Ausgang f r Ihr Instrument W hlen sie im Modulmen Unterverzeichnis input output das Modul PemMonoOut aus Wenn Sie jetzt den out Ausgang des Oszillators direkt per Drag amp Drop mit dem in Ein gang des Soundkartenmoduls verbinden und das Instrument mit dem Play Knopf in der Statusleiste starten w rden w re kein Ton zu h ren weil der Oszillator nur ein Signal mit der Amplitude 1 erzeugt und damit viel zu leise ist 47 48 KAPITEL 6 BEISPIELE Diese Amplitude 1 ist ein Csound internes Ma f r Lautst rke Die maximal darstell bare Lautst rke von Csound betr gt 32768 und stellt eine programminterne Gr e dar Merken Sie sich einfach da meist eine Lautst rke von 20000 ausreicht um Clipping zu vermeiden Sie m ssen also den Oszillator verst rken um ihn h ren zu k nnen Dazu ben tigen Sie das Amp Modul im amps mixers Unterverzeichnis Verbinden Sie den out Ausgang des SawVco mit dem in Eingang des Amp Mod
12. 2 Instance Variables 79 Class Var ValueOutOfRangeError Module model var Description module Module to which this variable belongs type Module name Name of variable A A type Type of variable Pe A 6 4 Class VarValueOutOfRangeError exceptions Exception Var ValueOutOfRangeError VarValueOutOfRangeError Exception if new value for InVar is out of rage A 6 4 1 Methods Inherited from Exception _init__ __getitem__ __str_ 80 Module model workspace A 7 Module model workspace A 7 1 Class ConnectionError exceptions Exception ConnectionError ConnectionError Exception if connection fails A 7 1 1 Methods Inherited from Exception _init__ __getitem__ str_ A 7 2 Class Workspace _ builtin__ object 7 model observer Observable Workspace Workspace Manages list of instruments and connections between modules and module IDs A 7 2 1 Methods init__ self Standard constructor addModule self module Add module to workspace and create a new instrument which includes this module Adds entry in self _modulesDict dictionary Parameters module Module to be added type model module Module 81 Class Workspace Module model workspace addXmlModule self moduleName Reads an xml module with an unique id and adds it to the workspace Parameters moduleName the name of the module which should be defined in a moduleName xml File in the searchPath of the moduleReader modules
13. 4 Verarbeitung externer Audio Signale Sie k nnen Cabel auch als Effektger t verwenden und externe Audio Signale weiterver arbeiten Beachten Sie dazu daf Sie wie in Kapitel 3 3 1 auf S 18 beschrieben Csound mit den richtigen Parametern starten um Audio Signale in Echtzeit von der Soundkarte lesen zu k nnen Vergessen Sie auch nicht den Score Parameter wie in Kapitel 3 3 1 auf S 17 beschrieben so einzustellen da Ihr Instrument automatisch getriggert wird In Abbildung 6 8 sehen Sie ein Beispiel in dem ein externes Stereo Audio Signal mit einer Rechteckswelle multipliziert wird also mit einem Square Vco ringmoduliert wird Mit dem MIDI Controller 1 MidiCtrlIn 11 k nnen Sie den Anteil des ringmodulierten Signals im Verh ltnis zum Originalsignal steuern MIDI Controller 2 MidiCtrlIn 7 steuert die Frequenz der Rechteckwelle und MIDI Controller 3 MidiCtrlIn 8 die Lautst rke von SquareVco und damit die Intensit t der Ringmodulation Das Beispiel finden Sie in der Datei examples external_square_ringmod cw in Ihrer Cabel Installation 6 4 VERARBEITUNG EXTERNER AUDIO SIGNALE 55 File Modules Options PcmStereoln 1 left MidiCtrlin 7 SquareVco 12 chn out fra ccnum pw pee MidiCtrlin 8 chn out ccnum min AudioMultiply 5 CrossFader 9 PcmStereoOut 2 AudioMultiply 6 inl pro in2 MidiCtrlin 11 chn out ccnum min max gt 100 autonlav Abbildung 6 8 Ringmodulation eines ex
14. Directories Abbildung 3 5 werden die f r Cabel relevanten Verzeichnisse angegeben 10sjehe Kapitel 3 1 Msiehe Kapitel 4 2 S 27 3 3 CABEL KONFIGURATOR 23 User Interface Directories Module Path home segoh projects cabel modules Browse Logging Logfiles home segoh Cabel log Logging on Editor scite Browse En Abbildung 3 5 Der Reiter Directories im Konfigurations Dialog 1 Module Path Hier wird das Verzeichnis das die XML Modul Dateien enth lt festgelegt Diese XML Dateien k nnen auch in Unterverzeichnissen organisiert werden Cabel erzeugt aus jedem Unterverzeichnis ein extra Untermen im Modules Men soda Sie Ihre Module nach eigenen Vorstellungen gruppieren k nnen 2siehe Abbildung 4 2 S 26 24 KAPITEL 3 EINSTELLUNGEN IM OPTIONS MEN 2 Logging Die Konfigurationsgruppe Logging legt fest ob die Standardausgabe von Cabel in Da teien mitgelogged wird Logging on und wenn ja in welchem Verzeichnis diese Log Dateien abgelegt werden 3 Editor Hier kann der Texteditor angegeben werden den Cabel ausf hren soll wenn Sie z B ber das Modul Kontextmenii den Quellcode eines Moduls angezeigt bekommen wollen 13siehe Kapitel 3 1 l4siehe Kapitel 4 2 S 27 Kapitel 4 Benutzeroberfl che Die Benutzeroberfl che von Cabel ist in drei grofe Bereiche aufgeteilt die im folgenden Kapitel n her beschrieben werden 4 1 Men 4 1 1
15. Eingang des zugeh rigen Moduls ziehen Wenn Sie zwei Ausg nge unterschiedlicher Art also z B ein Audio Signal mit einem Kontroll Signal verbinden wird das Signal auf die geringere Rate der beiden Signale konvertiert 4 2 2 Instrumente Eine Gruppe von verbundenen Modulen nennt man Instrument Jedem Instrument ist eine eindeutige Nummer zugeordnet die in der Statusleiste siehe Kapitel 4 3 auf Seite 30 angezeigt wird Falls Sie Ihr Instrument ber MIDI spielen wollen entspricht die Instrumentnummer dem MIDI Kanal ber den Sie Ihr Instrument ansprechen k nnen N here Informationen wie Instrumenten MIDI Kan le zugewiesen werden entnehmen Sie bitte dem Csound Benutzerhandbuch unter http www csounds com manual 30 KAPITEL 4 BENUTZEROBERFL CHE 4 3 Statusleiste Die Statusleiste Abbildung 4 6 zeigt zus tzliche Informationen zu Men punkten Mo dulen Moduleing ngen und Modulausg ngen ber denen sich der Mauszeiger gerade befindet ee Amp Amplify audio signal instr2 100 autonlav _ Abbildung 4 6 Die Statusleiste zeigt Informationen zu einem Amp Modul an Weiterhin wird in der Statusleiste die Instrumentnummer des Moduls angezeigt Kapitel 4 2 2 ber dem sich der Mauszeiger befindet 4 3 1 Zoomfaktor In dem Texteingabefeld der Statusleiste k nnen Sie den Zoomfaktor der Module auf Ihrem Arbeitsplatz einstellen um Modul und Schriftgr e innerhalb der Module gem Ihren
16. File S Modules Options New Ctrl N Open Ctri O Open Recent gt Save Ctrl S Save As Alt S Start Csound Ctrl Y Export to CSD Ctri E Exit Ctrl Q Abbildung 4 1 Das File Men Das File Men l t Sie Instrumente neu erzeugen laden speichern starten exportieren und das Programm beenden New L scht den Arbeitsplatz und l t Sie ein neues Instrument erzeugen Open L t Sie gespeicherte Instrumente ffnen 25 26 KAPITEL 4 BENUTZEROBERFLACHE Open Recent Liste der zehn zuletzt ge ffneten Cabel Instrumente Save Speichert die aktuellen Instrumente unter dem aktuellen Namen Save As Speichert die aktuellen Instrumente unter einem neuen Namen Start Csound Startet die aktuell auf Ihrem Arbeitsplatz befindlichen Instrumente mit Csound L uft bereits ein Csound Prozess kann mit diesem Men eintrag Csound gestoppt werden siehe auch Kapitel 4 3 3 auf S 30 Export to CSD Exportiert Ihren Arbeitsplatz in eine Textdatei die Sie ohne Cabel direkt mit Csound starten k nnen Exit Beendet Cabel 4 1 2 Modules Merle Options amps mixers control effects filters input output 2 PcmMonoln maths gt PcmMonoOut modulators gt sequencing gt PcmStereoOut sound sources Print Abbildung 4 2 Das Modules Men In diesem Men k nnen Sie die Module ausw hlen die Sie dem Arbeitsplatz hinzuf gen wollen Alternativ erreichen Sie dieses Men wenn Sie mit der rechten Maustaste auf ein
17. Instruments Wenn Sie Listing 8 1 in die Python Shell eingeben sollten Sie nach dem Triggern des Instruments einen Sinuston mit 440 Hz h ren Listing 8 1 Sinuston sine w addXmlModule sound_sources SineVco amp w addXmlModule amps mixers Amp out w addXmlModule input output PcmMonoOut w connect sine outVars 0 amp inVars 0 connect amp outVars 0 out inVars 0 setValue sine inVars 0 440 set Value amp inVars 1 20000 play 3333 Mit w stop k nnen Sie das Instrument wieder stoppen In Zeile 1 bis 3 werden die einzelnen Module erzeugt In Zeile 4 wird der erste Ausgang des SineVco Moduls Index 0 mit dem ersten Eingang des Amp Moduls Index 0 ver Falls Sie noch nie mit Python gearbeitet haben empfehlen wir das Buch Dive into Python Pil04 2 Application Programming Interface 62 8 2 VEREINFACHUNG SICH WIEDERHOLENDER ARBEITSSCHRITTE 63 bunden In Zeile 5 entsprechend der erste Ausgang von Amp mit dem ersten Ausgang von PcmMonoOut In den darauffolgenden Zeilen werden den nicht verbundenen Eing ngen Werte zugewiesen und das Instrument gestartet 8 2 Vereinfachung sich wiederholender Arbeits schritte Falls Sie eine Folge von Arbeitsschritten f r Ihren Instrumententwurf mehrmals durchf hren m ssen k nnen Sie diese ebenfalls automatisieren Dazu ein kleines Beispiel Um drei durch TriangleLfo frequenzmodulierte Moog Filter zu erzeugen verwenden Sie
18. Links zu Csound Literaturverzeichnis 119 119 121 124 124 130 130 134 134 135 137 137 138 142 144 145 147 149 150 Kapitel 1 Einleitung 1 1 Cabel Cabel ist eine graphische Benutzeroberfl che zum Entwerfen Erstellen und Spielen von Csound5 Instrumenten Wie bei modularen Synthesizern entstehen Cabel Csound Instrumente durch das Verbinden von Modulen ber Patchkabel Abbildung 1 1 Analoger modularer Synthesizer von Serge Die Module die Sie in Cabel verwenden sind in XML Dateien definiert und kapseln leXtensible Markup Language ein Standard zur Erstellung von maschinen und menschenlesbaren Dokumenten 1 1 CABEL I Csound Anweisungen zu kleinen Blackbox Einheiten deren Ein und Ausg nge unterein ander verbunden werden k nnen Ele Modules Options gleLfo 13 ControlAdd 14 SquareVco 12 out inl sum fra out pw ControlAdd 18 inl in i Mixer4 24 sum ControlAdd 19 inl sum um 2 n2 s 2 ControlAdd 20 inl in 100 autoplav Abbildung 1 2 Verschiedene miteinander verbundene Module in Cabel 1 1 1 Zielgruppe und Anspruch Der urspr ngliche Anspruch der Entwickler war ein Werkzeug zu entwerfen das sowohl Csound Anf nger als auch erfahrene Csounder anspricht und unabh ngig vom verwende ten Betriebssystem l uft N here Informationen zu Csound in Kapitel 1 2 1 auf S 8 Cabel soll den Csound Einsteigern erm glichen die Grundlagen dieser w
19. Sets the config xml Var and unchecks the options menubar entry Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ _setattr__ _str__ A 16 5 2 Class Variables Description MAX _HEIGHT_RELATLE Value 0 75 type float VE 146 Module view workspace Class CabelStatusBar A 16 6 Class CabelStatusBar _ builtin__ object 7 model observer Observer _ builtin__ object 7 wx _core Object 7 wx _core EvtHandler 7 wx _core Window 7 wx _windows StatusBar CabelStatusBar Cabel s own StatusBar A 16 6 1 Methods init__ self parent Standardconstructor Parameters parent Parent frame type view workspace CabelFrame on A utoplayCheckBox onPlayStopButton onZoomEntered self event 147 Class CabelStatusBar Module view workspace update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o he change Parameters observable The observable object type Observable arg An argument passed to the notifyObservers method type object Overrides model observer Observer update extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ A 16 6 2 Instance Variables Description workspace View workspace type view work
20. Vorstellungen anzupassen Mit der Tastenkombination CTRL Z springen Sie direkt in die Zoomfaktor Texteingabe um den Wert zu ndern 4 3 2 Autoplay Mit diesem Schalter k nnen Sie die Autoplay Funktion an und ausschalten N here In formationen zur Autoplay Funktion erhalten Sie auf S 20 in Kapitel 3 3 1 4 3 3 Play und Stop Knopf Zeigt dieser Knopf zu sehen unten rechts in Abbildung 4 6 ein dreieckiges Play Zei chen l uft momentan kein Csound Prozess und Sie k nnen durch Bet tigen des Knopfes Csound mit den Instrumenten auf Ihrem Arbeitsplatz starten Zeigt dieser Knopf ein rechteckiges Stop Zeichen l uft aktuell ein Csound Prozess den Sie durch Bet tigen des Knopfes beenden k nnen Damit die Statusanzeige diese Knopfes richtig funktioniert mu das Compilation Feedback Timeout richtig eingestellt sein Kapitel 3 3 1 auf S 19 4 3 STATUSLEISTE 31 Sollte es beim Start Ihrer Instrumente zu Fehlern kommen erhalten Sie die Csound Fehlermeldungen in dem Fenster der Eingabeaufforderung in dem Sie Cabel gestartet haben Der Knopf l t sich auch mit der Tastenkombination CTRL Y bet tigen Kapitel 5 Module Dieses Kapitel gibt einen berblick ber eine kleine Auswahl der mitgelieferten Stan dardmodule von Cabel 5 1 Amps Mixers 5 1 1 Amp Verst rker f r ein Audio Signal Das Eingangssignal wird um den Gain Faktor verst rkt bzw abgeschw cht in Eingang f r ein Audio Signal Faktor der
21. by default type str Return Value Returns added module Raises model xmlReader ModuleNotFoundError if the given moduleName module couldn t be found in the searchpath model xmlReader ModuleDefinitionError if the given moduleName xml module wasn t valid rtype model module Module connect self from Var to Var Connect fromVar to toVar add all modules of toVar module instrument to instrument of fromVar module and sort modules list in the correct order for csound code generation Parameters fromVar Startpoint of connection type model var Out Var toVar Endpoint of connection type model var In Var Return Value New connection Raises ConnectionError If connection from module to itself rtype model Connection connection 82 Module model workspace Class Workspace connect2 self fromModuleld from Varld toModuleld to Varld Same implementation different call than connect fromVar toVar Parameters fromModuleld Module id in the workspace type int fromVarld Output number of the fromModule type int toModuleld Module id in the workspace type int toVarld Input number of the fromModule type int create Workspace self workspaceReader None Create a Workspace from a workspaceReader object or a new empty one Informes observers Parameters workspaceReader Reads a complete cabel workspace from cw files type model xmiReader XmlWorkspaceReader disconnect self connectio
22. csound in a seperate process If csound s already playing stops it first Return Value True if the csound process started successfully type boolean Stops running Csound process Return Value True if there was a running csound process to be stopped else False type boolean update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o he change Parameters arg An argument passed to the notifyObservers method type object Overrides model observer Observer update Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ __repr__ _setattr__ _Str_ A 2 1 2 Instance Variables Description config Defines and encapsulates user specified csound relevant variables see config xml type tools config Config csoundVars Defines and encapsulates user specified csound relevant variables see config xml type tools config Csound workspace Link to workspace object type model workspace Workspace 68 Module model instrument Class Instrument A 3 Module model instrument A 3 1 Class Instrument _ builtin__ object Instrument Instrument An Instrument contains a list of included modules and their connections A 3 1 1 Methods __init__ self Standard constructor Overrides _builtin__ object _init_ rint Connect
23. den Code in Listing 8 2 Listing 8 2 Drei durch TriangleLfo modulierte Moog Filter for i in xrange 3 2 lfo w addXmlModule modulators TriangleLfo 3 moog w addXmlModule filters MoogVcf 4 w connect lfo outVars 0 moog inVars 1 8 3 Einbindung externer Python Skripte Zuletzt wollen wir Cabel durch ein externes Skript automatisieren Erzeugen Sie in ihrem Cabel Verzeichnis eine Datei script py mit dem Inhalt von Listing 8 3 Listing 8 3 Ein externes Python Skript def sine w frq 2 sine w addXmlModule sound_sources SineVco 3 amp w addXmlModule amps_mixers Amp 4 out w addXmlModule input output PemMonoOut 5 w connect sine outVars 0 amp inVars 0 6 w connect amp outVars 0 out inVars 0 7 w setValue sine inVars 0 frq 8 w setValue amp inVars 1 20000 Diese Datei definiert eine Funktion die ein Instrument hnlich Listing 8 1 erzeugt Geben Sie in der Python Shell Listing 8 4 ein um dieses Skript zu importieren und ein Sinus Instrument mit einer Frequenz von 300 Hz zu erzeugen Listing 8 4 Ausf hren eines externen Skriptes 1 import script 2 script sine w 300 64 KAPITEL 8 AUTOMATISIERUNG VON CABEL Anhand dieser Beispiele und mit Hilfe der Cabel API in Anhang A sollten Sie in der Lage sein Cabel zu automatisieren Anhang A Cabel API Class Connection Module model connection A 1 Module model connection A 1 1 Class Connectio
24. der Arbeitsfl che platzieren BT olMultiply 25 nl pro in2 MidiNoteln 14 velscale Remove Module minafttch maxafttch Show Module Xml Abbildung 4 3 Kontextmen eines Moduls 4 2 1 1 Aufbau Wie in Abbildung 4 4 zu sehen besteht ein Modul aus seinem Namen einer intern zu geordneten ID Nummer Eing ngen auf der linken Seite und Ausg ngen auf der rechten Seite 28 KAPITEL 4 BENUTZEROBERFLACHE MoogVcf 9 Abbildung 4 4 Miteinander verbundene Module Die Farbe der Ein und Ausg nge signalisiert wie Csound die eingestellten oder verbun denen Werte intern verarbeitet rot Audio Signal das zur eingestellten Audio Rate Kapitel 3 3 1 aktualisiert wird gr n Kontroll Signal das zur eingestellten Control Rate Kapitel 3 3 1 aktualisiert wird blau Instrument Signal das nur aktualisiert wird wenn das Instrument neu getriggert wird Da Module keine internen Parameter besitzen werden s mtliche Einstellungen ber die Eing nge eingestellt entweder direkt ber das Wertefenster Kapitel 4 2 1 2 oder indem die Module untereinander verbunden werden Kapitel 4 2 1 3 4 2 1 2 Das Wertefenster Mit einem Doppelklick auf ein Modul ffnet sich das zugeh rige Wertefenster Abbildung 4 5 in dem Sie s mtliche Parameter des Moduls einstellen k nnen Die Wertzuweisung kann sowohl ber den Schieberegler als auch ber die Texteingabe des entsprechenden Parameters erfolgen Bleiben Sie mit Ihrem Mauszeiger
25. die Python for Windows Ex tensions ben tigt Unter http sourceforge net projects pywin32 k nnen Sie das f r Ihre Python Version entsprechende Installationsprogramm f r die Extensions herunterladen Starten Sie den Installer und folgen Sie den Anweisungen 2 1 1 3 wxPython Unter http www wxpython org download php binaries k nnen Sie das f r Ihre Py thon Version entsprechende Installationsprogramm f r die wxWidgets Version 2 5 0 oder h her herunterladen Starten Sie den Installer und folgen Sie den Anweisungen 2 1 2 Csound5 Unter http sourceforge net projects csound k nnen Sie das Installationspro gramm des aktuellen Csound5 Releases f r Windows herunterladen Starten Sie den Installer und folgen Sie den Anweisungen der Installationsroutine 2 1 3 Cabel Jetzt fehlt nur noch Cabel Unter http sourceforge net projects cabel kann das aktuelle Cabel Release her untergeladen werden Dort findet man ein Zip Archiv das alle Cabel Dateien enth lt Dieses Archiv mu in ein Verzeichnis wie z B C Cabel entpackt werden Hinweis zur Aktualit t des Codes Cabel ist Open Source Software und wird weiterhin Ver nderungen unterliegen und wei terentwickelt werden Da nicht jede dieser Ver nderungen unmittelbar einen Release zur Folge haben wird kann es durchaus interessant sein sich anstatt des letzten Releases den aktuellen Stand von Cabel aus dem ebenfalls auf Sourceforge gehosteten CVS zu holen 2 2 LINUX I
26. indem Sie z B einen unsinnigen Channel Wert z B 2 f r ein Mono Instrument f r den Instrument Header einstellen 2 Starten Sie den Csound Prozess durch Bet tigen des Start Csound Knopfs mit dem Play Symbol rechts unten im Cabel Fenster 3 Warten Sie bis der Csound Prozess in der Console aus der Sie Csound gest artet haben das Abbrechen durch die Ausgabe einer Fehlermeldung best tigt a Wenn der Start Stop Csound Knopf rechts unten im Cabel Fenster jetzt immer noch das Play Symbol anzeigt so ist der Wert korrekt eingestellt da Cabel das Abbrechen des Csound Prozesses registriert hat und sich nicht f lschlicherweise im Zustand Gestartet befindet b Zeigt der Start Stop Csound Knopf das Stop Symbol so bet tigen Sie ihn erneut um Cabel in den Zustand Gestoppt zu bringen erh hen den Compilation Feedback Timeout Wert und wiederholen den Vorgang ab Punkt 2 8Das Starten bzw Stoppen des Csound Prozesses ber den Csound Start Stop Knopf in der Status leiste wird in Kapitel 4 3 3 auf Seite 30 genauer erl utert 20 KAPITEL 3 EINSTELLUNGEN IM OPTIONS MEN Autoplay Zus tzlich zu diesen drei Bl cken k nnen Sie die Autoplay Funktion von Cabel akti vieren Ist Autoplay aktiv und l uft Csound im Hintergrund wird jedesmal wenn Sie die Parameter eines Moduls ndern der aktuelle Csound Prozess beendet und ein neuer gestartet Deaktivieren Sie Autoplay so m ssen Sie nach jeder Parameter nderung an den Modulen Csou
27. kurz ber dem Textfeld oder dem Schieberegler eines Parameters erscheint ein kurzer Hilfetext der n here Informationen und den erlaubten Wertebereich des Parameters auflistet ber die Tastaturkombination CTRL W k nnen Sie das Wertefenster wieder schlie en Wie in Abbildung 4 5 bei Parameter in zu sehen werden Schieberegler und Texteingabe feld eines Parameters im Wertefenster deaktiviert wenn dieser verbunden ist und seinen Wert ber den Ausgang eines anderen Moduls erh lt 4 2 ARBEITSPLATZ 29 Filter resonance self resonates at 1 Range 0 0 2 0 Abbildung 4 5 MoogVcf Wertefenster mit verbundenem in Eingang und Tool Tipp zu dem Parameter res 4 2 1 3 Verbinden von Modulen Damit ein Eingangsparameter den Wert eines Ausgangs eines anderen Moduls zugewiesen bekommt m ssen Sie beide verbinden Befindet sich Ihr Mauszeiger ber einem Ausgang verwandelt er sich in eine Hand Wenn Sie nun die linke Maustaste dr cken und bei gedr ckter Maustaste bewegen entsteht zwischen dem ausgew hlten Ausgang und Ihrem Mauszeiger ein Kabel Bewegen Sie den Mauszeiger mit dem Kabel ber den Eingang eines anderen Moduls verwandelt er sich wieder in eine Hand Wenn Sie die linke Maustaste jetzt wieder loslassen einsteht eine Verbindung zwischen den beiden Modulen Ebenso k nnen sie die Verbindung zweier Module wieder ausstecken indem sie die Verbindung mit gedr ckter linker Maustaste aus dem
28. manual html kr html e KSMPS Anzahl der Samples in einer Kontroll Zeitspanne Der Wert dieses Parameters mu dem Bruch nn entsprechen Voreingestellter Wert 10 Csound Handbuch http www csounds com manual html ksmps html 2Siehe Kapitel 3 3 3 auf Seite 22 3 Auf das Schreiben eigener Module wird in Kapitel 7 ab Seite 56 genauer eingegangen 3 3 CABEL KONFIGURATOR 17 Csound User Interface Directories Instrument Header Sample Rate 48000 Control Rate 112000 KSMPS 4 Channels 1 Score fo 6000 Csound Preferences Csound path usr local bin csound Csound Parameters E b1024 B2048 W rtaudio alsa i adciplughw Compilation Feedback Timeout 400 Autoplay Abbildung 3 2 Der Reiter Csound im Konfigurations Dialog e Channels Anzahl der Ausgabe Kan le 1 Mono 2 Stereo 4 Quadrophonisch Csound Handbuch http www csounds com manual htm1 OrchHeader html 2 Score Hier wird die Score f r Csound angegeben Um das Cabel Instrument mit der Nummer 1 von der Startzeit 0 an automatisch 60 engl Partitur 5N here Informationenen zu Instrumenten in Kapitel 4 2 2 S 29 und Kapitel 4 3 S 30 18 KAPITEL 3 EINSTELLUNGEN IM OPTIONS MEN Sekunden lang spielen zu lassen gen gt die Score Zeile i1 0 60 Entsprechend ndern Sie den i1 Eintrag zu i2 wenn Sie Instrument 2 automatisch triggern wollen Wollen Sie Ihr Instrument d
29. 5 4 PemStereoOut on 38 DO Maths ace ua eds a et ee 38 50l Aloe ra AA ee re 38 50 2 Au dioMultiply sa e es au 6 4 au G86 asien 39 563 ControlAdd s seo s hans ri BSD BSS ee 39 5 6 4 GontrollLimit lt 4 24 4 3 24 4 2242 a2 2 bag er 39 9 6 5 ControlMultiply z e esa a 22 4 we naeh 40 A a Sana oe ee a eed hr eher ae BES 40 5 1 Modulators eo corsario a a ee 40 SER Ads ds a sies y ag aa a a hee ee a eR 40 5 7 2 AdsrLinTrigger 2 4 ae ar Kae 41 5 7 3 EnvFollower 2 2 nn 41 5 7 4 Pulselfto moon 41 o scr s use we u aa ae ee ee Et 42 INHALTSVERZEICHNIS 5 7 6 SampleAndHolds 5 ase an ko na aa ana A Baer DW 24644 os ae PARA A fie SIMCO sertare Se swe be ade ss o AAA 5 0 10 TriangleLio yas is a A E BRR Bh DS SEQUE soa ed Poke ee E NAAA 68s Deel DOQUEBREr es ds e E A A AI ee a 5 9 Sound SQUTCES e 4 22424 asa A SI NOSS en O ee ee ee 2 ee 5 9 2 BOW VCO si A a ek Be E OR We B08 OINEVCO 24230 ee ra ee eee eee EEE ee he ee DUA BOQUATEVCEO oe dee 2246S 536 55 OS WE es a 6 Beispiele 6 1 Einfacher subtraktiver Synthesizer 2 2 22 a 6 1 1 Der S gezahn Oszillator sane eb Gang sau ee in 6 12 MID fizierung des Oszillators au au eee ee ee ne 6 1 3 Lautst rkevariation durch eine H llkurve 2 2 2 2 2 6 1 4 Subtraktive Klangsynthese o 6 1 5 Erweiterung unseres subtraktiven Synthesizers 6 2 Verwendung des Sequencers e 6 3 Fr q
30. 6 27 28 29 30 31 32 33 34 58 KAPITEL 7 SCHREIBEN EIGENER MODULE lt vardef name gt frq csType k value 10 min 0 max 100 description Frequency _of_LFO gt lt vardef name amp csType k value 1 min 0 description Amplitude of LFO gt lt vardef name phi csType i value 0 min 0 001 max 1 digits 3 description Initial_phase_of_LFO_ negativ _ to_ skip initialisation gt lt input gt lt output gt lt vardef name out csType k description Output of LFO gt lt output gt lt global gt lt def description Pulse_table gt gipulselfo een 0 0 128 7 1 4 1 0 0O 124 0 lt def gt lt global gt lt opcode gt Pulse low frequency oscillator clock signal opcode PulseLfo k kki kfrq kamp iphi xin kfrq limit kfrq 0 100 kamp limit kamp 0 50000 iphi limit iphi 1 1 kout oscil kamp kfrq gipulselfo iphi xout kout endop lt opcode gt 35 lt modul gt 7 2 1 Der Modul Knoten Der Dokumentroot Knoten der alle restlichen Elemente des Cabel XML Moduls um schlie t hat den Namen modul in Listing 7 1 Zeile 2 5 und Zeile 35 In diesem Element wird in entsprechenden Attributen das Schema noNamespaceSchemaLocation der Name des Moduls name und eine kurze von Cabel dann in der Statusleiste angezeigte Beschreibung des Moduls
31. 6 5 Verwendung des Sequencer Moduls Den Score Parameter in den Csound Options sollten Sie wie in Kapitel 6 1 1 beschrieben auf 1 0 6000 setzen damit das Instrument automatisch getriggert wird Wenn Sie nun das Instrument starten h ren Sie eine schnell aufsteigende Tonfolge Da es schwierig ist eine Notenfolge aus Frequenzen zu konstruieren k nnen Sie zwischen dem Sequencer und dem SawVco Modul ein zus tzliches Midi2Frq Modul maths Un terverzeichnis verwenden damit Sie die Sequenz als Folge von MIDI Notennummern 3 programmieren k nnen und diese dann in die entsprechenden Frequenzen umgerechnet werden Die Sequenz ndern Sie indem Sie die Parameter val bis val8 im Sequencer Modul z B auf 40 52 40 55 40 57 40 52 E e E g E a E g setzen Die Geschwindigkeit in der die Sequenz abgespielt wird stellen Sie ber den frq Parameter des PulseLfo Moduls ein Um f nf T ne pro Sekunde spielen zu lassen ndern Sie die Frequenz des PulseLfo auf 5 Ein fortgeschrittenes Beispiel f r die Verwendung von Seguencer Modulen k nnen Sie in der Datei eramples sequencer_notequantizer_sampleandhold cw studieren 3Tabelle zur Umrechnung von MIDI Notennummern http www zem college de midi mc_taben htm 6 3 FREQUENZMODULATION 93 6 3 Frequenzmodulation Ele Modules Options SineVco 1 Amp 3 frq out in out gain ControlAdd 6 inl sum SineVco 2 Amp 4 PcmMonoOut 5 frq out in out in in2 gain Ed autoolav
32. 8 6466864658646 73 Ab Class ODServel 4 22 4222 ead Ba eG 4 ee Se eS 74 A 6 Module model var a 2 2 20a ur Swe re ae ea 76 Ab lee ln Var eote ear aad Coe ee 2G SOs 2S SO 76 A02 Class OULVGE a ideas ak a OS oe SS o ee d 77 AG Glass VA a eng cg ee A arse Nie A ge te He yet 78 A 6 4 Class VarValueOutOfRangeError 80 A 7 Module model workspace 0 0002 eee ee eee 81 A 7 1 Class ConnectionError aa vun es en es 81 Aut Class W rkspac seseante paa goki A ONG poka EO 81 A 8 Module model xmlGenerator 2 2222 a a a a eee 87 A 8 1 Class XmlGenerator oaoa a wee er a es 87 A 9 Module model xmlReader 90 A 9 1 Class ModuleDefinitionError 90 A 9 2 Class ModuleNotFoundErtror 90 A 9 3 Class XmlModuleReader 90 A 9 4 Class XmlWorkspaceReader 92 A 10 Module tools config ei a ad a ED 94 A101 Class e EII INN 94 AD 2 Class Config tor qe hig a e a de EM ae ewe 97 A103 Glass ConfigEnumVar sy Gd ee Sa Pe be Peo lew RG 97 A104 Class Conf Va u 00 a0 0m RL ie 98 A 10 5 Class Csound serra a ase 100 AJUGO Class Directories 4 sis mora ogos a p o a a 102 IA en a a ee ea OS eS 103 A 10 8 Class Setting 2 2 0 0 woe a a wann aa een 104 A 10 9 Class Views 45 1 as amp pease var aha A 106 A 11 Module view configurator 2 2 a 109 A 11 1 Class CabelConfigDialog 2 2 a n
33. Echtzeit Audio Ausgabe ber den JACK Soundserver d W o dac rtaudio jack b256 B2048 MO F r Echtzeit Audio Input mit JACK den Parametern i adc hinzuf gen f r ALSA i adc plughw 0 Eine ausf hrliche Beschreibung aller m glichen Csound Kommandozeilenparameter gibt es unter http www csounds com manual html CommandFlags html e Compilation Feedback Timeout Cabel startet den Csound Prozessor in einem separaten asynchron zu Cabel laufen den Prozess Bisher lassen sich der aufrufende Cabel und der aufgerufene Csound Prozess nicht plattformunabh ngig und performant synchronisieren Der Parameter Compilation Feedback Timeout ist Teil eines Workarounds der versucht das Syn chronisierungsproblem zu l sen Damit Cabel wei ob ein abzuspielendes Instrument vom Csound Prozess erfolg reich bersetzt wurde wartet es nach dem Starten die in Compilation Feedback Timeout in Millisekunden angegebene Zeitspanne ab und berpr ft erst dann ob der Csound Prozess noch l uft Ist dies nicht der Fall bedeutet das da Csound einen Fehler entdeckt hat und Cabel wechselt wieder zur ck in den Zustand Ge stoppt Da die Zeit die Csound zum bersetzen der Cabel Instrumente ben tigt von der Gr e des Cabel Instruments und der Geschwindigkeit Ihres Rechners abh ngt k nnen Sie diesen Parameter hier selbst einstellen Dabei gehen Sie wie folgt vor 1 Provozieren Sie f r ein zu bersetzendes Instrument einen bersetzungsfeh ler
34. Module inputNum Input number of end plug on inModule type int __eq__ self other Overwritten equal operator Parameters other the ModuleConnection to compare with type view connection Module Connection __ne__ self other Overwritten not equal operator Parameters other the ModuleConnection to compare with type view connection Module Connection 121 Class ModuleConnection Module view connection draw self de zoom Draw this connection in our workspace Parameters dc Device conetext on which to draw type wz DC Zoom of Connection default 100 type int a drawRelative self de origin zoom Draw this connection relative to origin in our workspace Parameters de Device context on which to draw type wx DC origin Actual orgin of workspace type wx Point zoom Zoom of Connection default 100 e etInModule self Return input moduleof connection etInputNumber self Return input number of inModule getOut Module self Return output module of connection getOutput Number self Return output number of outModule Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ Inherited from Connection getColours getSagging A 12 2 2 Instance Variables 122 Module view connection Class ModuleConnection inModule End module of connection SS eee mota Made inputNum Input number of end plug on inModule
35. NSTALLATIONSANLEITUNG 13 F r n here Informationen hierzu sei auf die Rubrik C VS auf der Homepage von Cabel auf sourceforge net verwiesen http sourceforge net projects cabel 2 1 4 Setzen von Umgebungsvariablen Damit die Programme die Cabel ben tigt voneinander wissen m ssen noch die folgenden Umgebungsvariablen gesetzt werden 1 Der Umgebungsvariable PYTHONPATH das Unterverzeichnis bin ihres Csound5 In stallationsverzeichnisses hinzuf gen Beispiel Ist Csound5 im Verzeichnis C Csound5 installiert so mu die Umge bungsvariable PYTHONPATH in seiner durch Srichpunkte unterteilten Liste von Ver zeichnissen den Wert C Csound5 bin enthalten 2 Die Umgebungsvariable PATH enth lt ebenfalls eine durch Strichpunkte unterteile Liste von Verzeichnissen Dieser Liste sollte noch der Pfad zum Python 2 4 Inter preter Python exe hinzugef gt werden Beispiel Ist Python 2 4 im Verzeichnis C Python24 installiert so mu genau dieser Wert in der Umgebungsvariablen PATH aufgelistet sein Setzen von Umgebungsvariablen unter Windows Dazu mit der rechten Maustaste auf das Arbeitsplatz Symbol auf dem Desktop oder im Explorer gehen und Eigenschaften ausw hlen Dann den Reiter Erweitert ausw hlen und den Button Umgebungsvariablen bet tigen Zum Bearbeiten einer vorhandenen Umge bungsvariable diese im Bereich Systemvariablen ausw hlen und den Button Bearbeiten bet tigen oder zur Neuanlage auf Neu 2 2 Linux In
36. Parameters event Menu Event associated with this method in view workspace CabelFrame __init__ type we Event on ValueFrameClosed self valueframe Called when a value frame is closed Parameters valueframe Closed value frame type model view valueframe Cabel ValueFrame setloTextCtrl sel control Nome set ModuleFocus self module Sets the actual Module gives it a focus and removes the focus on the old actual module if there was any Parameters module The new actual Module type view module Module 128 Module view controller Class CabelController update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o arg An argument passed to the notifyObservers method type object Overrides model observer Observer update Set Zoom percent value on the workspace scales every module on the workspace and repaints the workspace Parameters zoom Percent value of the zoom type int Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ 129 Module view module A 14 Module view module A 14 1 Class Module _ builtin__ object Module Module Graphic class for a module on the workspace A 14 1 1 Methods _ init__ self x y module controller Standard constructor Para
37. Technische Universit t M nchen Fakult t f r Informatik M glichkeiten plattformunabh ngiger Klangsynthese Interdisziplin res Projekt Matthias Thar Sebastian Gutsfeld Technische Universit t M nchen Fakult t f r Informatik M glichkeiten plattformunabh ngiger Klangsynthese Interdisziplin res Projekt Matthias Thar Sebastian Gutsfeld Themensteller Christian B hm Betreuer Christian B hm Abgabetermin 7 M rz 2006 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung BE Mabel rue dre a Bee ro e rra poa ad 1 1 1 Zielgruppe und Anspruch o lt s HH dae 1 1 2 Erweiterbarkeitt 2 42 22 4a SH a dass dan and 1 2 Arbeitsumgebung von Cabel 2 2 2 Em nn n nn 1 2 1 Was ist Csound5 Eine kurze Einf hrung 1 22 POM a a sac te we ae a e ar ee ee BS 1 3 Neuigkeiten und Support 2 2 a 1 4 Kommentare von Cabel Anwendern ooo a Emmen 2 Installation 2 1 Windows Installationsanleitung 2 26 4 2 ee a LLL ES a a E AA e RA a ae 2 1 2 ASUS cs sea area y ace A ME AAA IEEE 2 1 4 Setzen von Umgebungsvariablen 22 Linux nstallationsanleitung 5 zu au 2 un ne a a a DS 2 21 Python an we a Od 2 ASOMO ee en ee En Pr eee he 22 Cabel osasse eea an a en rd 23 Starten von Gabele sis wae ts we a aE Ow eH ree 3 Einstellungen im Options Men 3 1 Ein und Ausblenden des unteren Fensters 22 2 22 nn a 3 2 Aktualisieren d
38. VER SYNTHESIZER 49 Wenn Sie nun Ihr Instrument mit dem Play Knopf in der Statusleiste starten und falls n tig zus tzlich triggern sollten Sie einen konstanten obertonreichen Ton h ren 6 1 2 MUIDIfizierung des Oszillators Nun wollen wir die Tonh he des Instruments mit unserem MIDI Keyboard steuern Da zu ben tigen Sie ein MidiNoteln Modul aus dem control Modulverzeichnis Dessen frq Ausgang verbinden Sie mit dem frq Eingang des SawVco Ele Modules Options a MidiNoteln 4 SawVco 1 Amp 2 PcmMonoOut 3 7 velscale frq frq out in out in gain rl minafttch note shape maxafttch wel afttch 100 autoplav Abbildung 6 2 Steuerung der Tonh he mit einem MIDI Keyboard Stellen Sie sicher da das Instrument nicht automatisch getriggert wird indem Sie den Score Parameter im Preferences Dialog wie weiter oben beschrieben auf f0 6000 setzen Nun k nnen Sie das Instrument starten und mit Ihrem MIDI Keyboard spielen 6 1 3 Lautst rkevariation durch eine H llkurve Damit der Ton bei einem Tastendruck nicht abrupt einsetzt und beim Loslassen ebenso abrupt endet modulieren wir die Lautst rke unseres Instruments mit einer H llkurve F gen Sie das Modul AdsrLinMidi aus modulators zu Ihrer Cabel Arbeitsfl che hinzu und verbinden Sie es wie in Abbildung 6 3 zu sehen 50 KAPITEL 6 BEISPIELE File Modules Options MidiNoteln 4 SawVco 1 Amp 2 PcmMonoOut 3 velscale frq frq out in out in minafttch note sha
39. Verst rkung Audio Ausgang f r das verst rkte Signal 5 1 2 Mixer2 Mixer2 1 In Kapitel 6 1 1 auf Seite 47 wird n her auf den Verst rkungsfaktor bei Cabel Instrumenten einge gangen 32 5 2 CONTROL 33 Mischer f r zwei Audio Signale Die beiden Eingangssignale werden um den jeweiligen Gain Faktor verst rkt bzw abgeschw cht und aufsummiert um das Ausgabesignal zu erzeugen inl Eingang fiir das erste Audio Signal Faktor der Verst rkung des ersten Audio Signals in2 Eingang fiir das zweite Audio Signal Faktor der Verst rkung des zweiten Audio Signals Audio Ausgang fiir das gemischte Signal 5 2 Control 5 2 1 MidiCtrlIn MidiCtrlin 1 chnl out ccnum min max Input f r MIDI Controller nderungen Dieses Modul empf ngt einkommende MIDI Controller Anderungen und skaliert sie auf den mit min und maz eingestellten Bereich MIDI Kanal 5 2 2 MidiNoteln MidiNoteln 1 velscale frq minafttch note maxafttch vel afttch Input f r MIDI Note On Note Off Velocity On und Channel Aftertouch Events F r ankommende MIDI Note On Signale wird sowohl die entsprechende MIDI Notennummer 2In Kapitel 6 1 1 auf Seite 47 wird n her auf den Verst rkungsfaktor bei Cabel Instrumenten einge gangen 34 KAPITEL 5 MODULE als auch die zugeh rige Frequenz ausgegeben Der zugeh rige MIDI Kanal entspricht dabei der Instrumentennummer die in Cabels Statusleiste angezeigt wird MIDI Velocity On des ankomm
40. __ object 7 model var Var Out Var Module output variable At the moment this is just a wrapper for Var with special name A 6 2 1 Methods init__ self module name _type description Standard constructor Parameters module Module to which this variable belongs type model module Module Name of variable type string Type of variable type string model var TT Class Var Module model var Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _repr__ _setattr__ _str_ A 6 2 2 Instance Variables description describes the meaning of the input var type string Inherited from Var module p 78 name p 78 type p 78 A 6 3 Class Var _ builtin__ object 7 Var Known Subclasses InVar Out Var Module variable Var contains its corresponding module variable name and variable type This class serves as interface for special variables A 6 3 1 Methods __init__ self module name _type description Standard constructor Module to which this variable belongs type model module Module Name of variable type string _type Type of variable type string description describes the meaning of variable type string Overrides _builtin__ object _init_ Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ 78 Module model var Class Var A 6 3
41. ader Class XmlWorkspaceReader Description filePath Path to the saved workpace file O Lora IT instances A dictionary mapping tuples moduleName string moduleld int to moduleInstance Nodes type dictionary modelModules Dictionary mapping ids int to model modules in the saved workspace type dictionary references A dictionary mapping moduleNames to module Nodes with the same xml syntax as used for the module defintions type dictionary rootNode The root node of the saved workspace file ET penton Nols viewModules Dictionary mapping model modules to their corresponding view modules type dictionary 93 Module tools config A 10 Module tools config A 10 1 Class Category _ builtin__ object Category Known Subclasses Csound Directories List Var View Category Abstract superclass for all Config Categories If you want a coherent config xml File do NOT use the Config_Var objects of vars directly setVal getVal are the methods to use A 10 1 1 Methods __init__ self name configDoc configXmlLocation Standardconstructor Parameters name Name of Category type string configDoc config xml DOM type minidom Document configXmlLocation Path to config xml type string Overrides _builtin__ object __init__ fllWithDefault Vars self Fills vars with its Config_Var Objects Has to be implemented by the non abstract inherited classes 94 Module tools config Class Ca
42. arent var id 1 size wx Size 1 1 116 Module view configurator Class ConfigStringMultiLine SaveVars self Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _setattr__ str A 11 8 Class ConfigStringMultiLine _ builtin__ object E view configurator ConfigControl _ builtin__ object 7 wx _core Object 7 wx _core Sizer 7 wx _core BoxSizer ConfigStringMultiLine A 11 8 1 Methods __init__ self parent id configParser configString TextNode Var _size Overrides view configurator ConfigControl __init_ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ Inherited from ConfigControl hasChanged invalidateVarVal onOK paintCtrIWhi te paint ThelnvalidRed updateVarValDict A 11 8 2 Instance Variables Name Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 parent p 112 117 Class ConfigStringSingleLine Module view configurator A 11 9 Class ConfigStringSingleLine _ builtin__ object E view configurator ConfigControl builtin__ object 7 wx _core Object E wx _core Sizer 7 wx _core BoxSizer ConfigStringSi
43. ategory name Name of ConfigVar type string default Default Value of ConfigVar type string setting Describes ConfigVar type config Setting nodeType Is the ConfigVar stored as a ATTRIBUTE_NODE Standard or TEXT_NODE in config xml type int minidom Node nodeType Overrides _builtin__ object __init__ get Val self rapper for category get Val Reads the Config Var out of config xml If it s var Node in config xml DOM not exists it adds it Return Value Stored ConfigVar type Config Var set Val self val rapper for category set Val rite self read False rites Var in config xml DOM If its var Node does not exist it creates it 99 Class Csound Module tools config Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 10 4 2 Properties CU Sid KO A 10 4 3 Instance Variables category Category to which ConfigVar belongs to SS aeea description Describes ConfigVar E Pro name Name of ConfigVar pe pening nodeFound Set by read method If it is set to None after read method the category in charge will save config xml Else it stores the varNode type boolean node Type Is the ConfigVar stored as a ATTRIBUTE_NODE or TEXT_NODE in config xml type int minidom Node node Type valueType Type of Value string Ale o A 10 5 Class Csound _ builtin__ object 7 tools config Categ
44. be Kan le angegeben Im Instrument Block wird dann durch Csound Befehle die Opcodes genannt werden das Instrument beschrieben Diese Opcodes lassen sich ber ihre Ein und Ausgabe Variablen miteinander verkn pfen Csound5 liefert eine Menge an Opcodes zum Generieren Modifizieren Einlesen und Aus geben von Signalen Au erdem gibt es die M glichkeit externe VST Effekte und Synthe sizer einzubinden Instrumente durch Skript Sprachen wie Python zu erweitern etc Um die so programmierten Instrumente spielen zu k nnen braucht der Soundprozessor noch die Information was er wann und wie spielen soll Dies legt eine weitere Eingabe quelle fest die Noten Events und dazu geh rige Parameter an den Prozessor bermittelt Csound kann dabei folgende Noteneingabequellen verstehen e Echtzeit MIDI e MIDI Dateien e OSC Nachrichten e Score Dateien von Csound vorgegebenes Format Weiterf hrende Links zu Csound finden Sie im Anhang B auf S 149 Erk rung zu VST unter http de wikipedia org wiki Virtual Studio Technology 3Erkl rung zu MIDI unter http de wikipedia org wiki MIDI 4Open Sound Control http www cnmat berkeley edu OpenSoundContro1 1 3 NEUIGKEITEN UND SUPPORT 9 1 2 2 Python Ein weiterer Aspekt der Cabel sehr vielseitig einsetzbar und leicht erweiterbar macht ist die Programmiersprache Python in der die Anwendung entwickelt wurde Python ist eine interpretierte interaktive objektorientierte Programmie
45. ble object type Observable arg An argument passed to the notifyObservers method type object Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ str 75 Module model var A 6 Module model var A 6 1 Class InVar _ builtin__ object 7 model var Var 7 InVar Module input variable Special Var for input variables which can set its actual value in the range min to max if not connected A 6 1 1 Methods Standard constructor Parameters module Module to which this variable belongs type model module Module Name of variable type string Type of variable type string Minimal allowed value for value type float Maximal allowed value for value type float Initial value of variable type float Number of digits or presicion for the value type int Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 6 1 2 Properties 76 Module model var Class Out Var A 6 1 3 Instance Variables Description connection Link to connection to this var A type model connection Connection digits Number of digits or presicion for the value e max Maximal allowed value for value S ee min Minimal allowed value for value DE o value Initial value of variable e Inherited from Var module p 78 name p 78 type p 78 A 6 2 Class OutVar _ builtin
46. ch it should be set type int Raises IndexError If the ConfigVar vars var isn t a ConfigEnumVar set Val self var val Sets the Value of the Config Var object in vars var and saves the config xml DOM Parameters var index of Config_Var object in vars Get it from the instance constants of the implemented Category type int Value to which it should be set type string Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _ setattr__ str A 10 1 2 Instance Variables Description categoryNode Node of the Category in config xml DOM type minidom Element configDoc config xml DOM type minidom Document continued on next page 96 Module tools config Class ConfigEnum Var configXmlLocation Path to config xml ATT 37 name Name of Category pe vars List of ConfigVar objects setVal getVal are the methods to use for access to its Values type list A 10 2 Class Config Config Encapsulates all Categories in the config file A 10 2 1 Methods init__ self Standardconstructor A 10 2 2 Instance Variables configDoc config xml DOM type minidom Document configXmlLocation Path to config xml type string A 10 3 Class ConfigEnumVar _ builtin__ object tools config ConfigVar ConfigEnumVar ConfigEnumVar Like ConfigVar but with additional instance var enum Saves as the value the index of the value in the own
47. de type rml dom Element get XmlAdditionallnfo self workspace Returns node with addiotional Information to be saved Parameters workspace type view workspace CabelFrame Return Value Xml node type rml dom Element 87 Class XmlGenerator Module model xmlGenerator getXmlConnections self cons Returns Xml connection nodes Parameters List of view connections type list Return Value Xml connections node type xml dom Element getXmlModulelnstance self mod Returns a Xml module instance node Parameters mod View module to create the instance node type view module Module Return Value Xml module instance node type ml dom Element getXmlModuleReference self mod Returns a xml module reference node Parameters mod Model module to create the reference node type model module Module Return Value Xml module reference node type ml dom Element riteWorkspace self workspace rites the workspace to a xml File Parameters workspace The workspace to be saved type view workspace CabelFrame Return Value True if saved False Message if error type boolean string Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _repr__ _setattr__ _str_ 88 Module model xmlGenerator Class XmlGenerator A 8 1 2 Instance Variables Description doc Root Document type xml dom Document filePath Pa
48. dern Congratulations This is already a very neat program in it s first release I am looking at Cabel very much as it is well done Steven Yi Entwickler der Csound Kompositionsumgebung blue Great job well done I have played a little with Cabel and it seems easy and intuitive with a nice interface It ran straight out of the box on windows which has a lot to be said of Victor Lazzarini Leiter des Music Technology Laboratory der National University of Ireland Maynooth Excellent work It is truly an amazing idea to have a dataflow version of the Csound language I feel that we are at the dawn of a new age of accessibility with Csound because of tools such as blue Composition Environment and Cabel modular patching system The line between any proprietary implementation and Csound is blurring more every day from a UI perspective namely Thanks to your contributions David Akbari Musiker it gives me the tweakiness of Reaktor or PD with the power of Csound Michael Gogins Csound Entwickler und Komponist I am thrilled to see that the program is written in cross platform Python and look forward to having an opportunity to see how well it works on MacOS 9 Bravo Anthony Kozar Csound Entwickler und Komponist http www csounds com stevenyi blue index html Kapitel 2 Installation Cabel basiert auf der Programmiersprache Python Um Python Programme ausfiihren zu k nnen ben tigt man die darin
49. description angegeben Dabei ist es wichtig da der Wert des name Attributs sowohl dem Dateinamen des Moduls als auch dem Namen des User defined Opcodes der im opcode Knoten Kapitel 7 2 5 definiert wird entspricht siehe Zeile 24 in Listing 7 1 6Siehe Abbildung 4 6 auf Seite 30 7 2 AUFBAU DER CABEL MODUL XML DATEIEN 59 7 2 2 Eingabe Variablen Die Eingabe Variablen des Moduls werden im Knoten input in Listing 7 1 Zeile 6 14 definiert Dieser enth lt f r jeden Eingabeparameter des Moduls einen Knoten vardef der folgende Attribute besitzt e name Anzeige Name der Eingabe Variable auf dem Cabel Modul e csType Wie in Kapitel 4 2 1 1 beschrieben der Csound Typ der Eingabe Varia blen einer der Werte a f r Audio Signal k f r Kontroll Signal oder i f r Instrument Signal e description Beschreibung der Eingabe Variable e value Standardwert mit dem die Eingabe Variable initialisiert wird e min Untere Grenze des g ltigen Wertebereichs der Eingabe Variable e max Obere Grenze des g ltigen Wertebereichs der Eingabe Variable e digits Anzahl der Dezimalstellen auf die der Wert der Eingabe Variable gerundet werden soll Reihenfolge und Typ der einzelnen Eingabeparameter mu den Parametern des User defined Opcodes im Opcode Knoten Kapitel 7 2 5 entsprechen 7 2 3 Ausgabe Variablen Die Ausgabe Variablen des Moduls werden im Knoten output in Listing 7 1 Zeile 15 17 definiert Dieser enth lt f r
50. die beiden ankommenden Audio Signale Erstes Audio Signal Zweites Audio Signal Produkt der beiden ankommenden Audio Signale 5 6 3 ControlAdd ControlAdd 1 inl sum in2 Addiert die beiden ankommenden Kontroll Signale Erstes Kontroll Signal Zweites Kontroll Signal Summe der beiden ankommenden Kontroll Signale 5 6 4 ControlLimit ControlLimit 1 Beschr nkt das ankommende Kontroll Signal auf einen bestimmten Wertebereich Eingang f r Kontroll Signal Untere Grenze des Wertebereichs auf den in beschr nkt werden soll Obere Grenze des Wertebereichs auf den in beschr nkt werden soll Auf den Wertebereich beschr nktes Kontroll Signal 40 KAPITEL 5 MODULE 5 6 5 ControlMultiply ControlMultiply 1 inl pro in2 Multipliziert die beiden ankommenden Kontroll Signale Erstes Kontroll Signal Zweites Kontroll Signal Produkt der beiden ankommenden Kontroll Signale 5 6 6 Midi2Frq Midi2Frq 1 in out Rechnet MIDI Notennummern in die entsprechende Frequenz um in MIDI Notenummer Ausgabe der entsprechenden Frequenz 5 7 Modulators 5 7 1 AdsrLinMidi AdsrLinMidi 1 MIDI getriggerter linearer ADSR H llkurvengenerator Dieser H llkurvengenerator er zeugt eine klassische lineare ADSR H llkurve Attack Decay Sustain Release Adsr LinMidi wird durch ein ankommendes MIDI Note On Signal getriggert Amplitude auf die die normalisierte H llkurve skaliert werden soll Attack Zeit in Sekunden
51. e Attribut description ist Es dient nur der Dokumentation des Moduls und soll die globale Va riable kurz beschreiben Der eigentliche Inhalt des def Knotens ist ein Csound Opcode als Text zwischen dem Start und Ende Tag des def Elements Als Beispiel f r die Definition einer globalen Variable siehe Zeile 18 in Listing 7 1 F r n here Informationen zum darin verwendeten Csound Opcode ftgen siehe http www csounds com manual html ftgen html 7 2 5 Opcode Knoten Schlie lich folgt der Knoten opcode Listing 7 1 ab Zeile 23 in dem die eigentlichen Csound Anweisungen als reiner Text definieren was das Modul zu machen hat Die hier anzugebende Anweisung ist die Definition eines User defined Opcodes Die Syntax dieses Codes hier zu erkl ren w rde zu weit f hren daf r sei auf die folgenden Seiten im Internet verwiesen e Opcode Definition http www csounds com manual html opcode html und e User defined Opcode Bibliothek http www csounds com udo 7 3 Einbinden der XML Modul Dateien in Cabel Um ein wie in den letzten Abschnitten beschriebenes eigenes Cabel XML Modul auch in Cabel verwenden zu k nnen mu eine entsprechende XML Datei im Modul Verzeichnis oder einem Unterverzeichnis davon angelegt werden Zum Erstellen wird ein XML Editor empfohlen der wie in Kapitel 7 1 auf Seite 56 beschrieben das selbst geschriebene Modul gegen das Schema modul xsd zu finden im Modul Verzeichnis validieren kann 10Fiir n here I
52. eldateien 05_suboscillator_mixer2 cw und 06_detuned_saw_mixer4_analogecho cw im examples Unterordner Ihrer Cabel Instal lation k nnen Sie m gliche Erweiterungen Ihres Synthesizers studieren Im ersten Schritt wird dem S gezahn Signal ein um eine Oktave tiefer gestimmter Recht eckoszillator ein sogenannter Suboszillator beigemischt um die Bassfrequenzen unseres Instruments zu verst rken Im n chsten Schritt wird zus tzlich noch ein leicht verstimmter S gezahnoszillator erg nzt damit der Gesamtklang weniger statisch ist Um den Klang noch weiter zu ver feinern wird zum Schlu noch alles durch einen Hall Effekt geschickt 6 2 Verwendung des Sequencers In diesem kurzen Beispiel wird gezeigt wie das Sequencer Modul verwendet wird Aus gangspunkt ist dabei der minimale Klangerzeuger aus Kapitel 6 1 1 in der Datei examp les 01_saw_amp_monoout cw Ihrer Cabel Installation Zun chst f gen Sie zu diesem Instrument ein Seguencer Modul aus dem Modulmen Un terverzeichnis seguencer hinzu Damit dieses Modul in regelm igen Zeitabschnitten seine Werte ausgibt ben tigen Sie noch ein Clock Signal Dazu eignet sich das PulseLfo Modul im modulators Unterverzeichnis 92 KAPITEL 6 BEISPIELE Verbinden Sie die Module wie in Abbildung 6 5 zu sehen Ele Modules Options PulseLfo 5 aue frq out step amp reset gate phi steps vall val2 val3 val4 val5 val6 val7 val8 100 autonlav Abbildung
53. en freien Bereich des Cabel Arbeitsplatzes klicken 4 1 3 Options Dieses Men wurde bereits in Kapitel 3 auf S 15 n her beschrieben Unified File Format von Csound http www csounds com manual html CommandUnifile html 4 2 ARBEITSPLATZ 27 4 2 Arbeitsplatz Der Arbeitsplatz nimmt den gr ten Teil der Benutzeroberfl che in Anspruch Auf ihm befinden sich die Module und deren Verbindungen Um den sichtbaren Ausschnitt des Arbeitsplatzes zu verschieben k nnen Sie entweder die Scrollleisten verwenden oder den Arbeitsplatz mit gedr ckter mittlerer Maustaste verschieben 4 2 1 Module Um ein neues Modul zu erzeugen w hlen Sie das Gew nschte aus dem Modulmen Ab bildung 4 2 Dieses Men erreichen Sie ebenfalls ber einen Klick mit der rechten Mausta ste auf einen freien Bereich des Arbeitsplatzes Um ein Modul wieder vom Arbeitsplatz zu entfernen ffnen Sie das Kontextmen Ab bildung 4 3 des Moduls mit einem Klick der rechten Maustaste auf das entsprechende Modul und w hlen den Punkt Remove Module aus Mit Show Module Xml k nnen Sie sich den mit diesem Modul verkn pften XML Quelltext in einem Editor Ihrer Wahl Kapitel 3 3 3 anzeigen lassen Falls Sie wie in Kapitel 3 3 2 beschrieben Module Zoom Enabled aktiviert haben k nnen Sie im Modul Kontextmen das Modul in Default Zoom Factor Schritten vergr ern und verkleinern Wenn Sie die linke Maustaste ber einem Modul gedr ckt halten k nnen Sie es auf
54. ende Audio Signal wird um time Sekunden verz gert ausgegeben 36 KAPITEL 5 MODULE in Eingang f r ein Audio Signal Verz gerungszeit in Sekunden Verz gertes Audio Signal 5 4 Filters 5 4 1 ButterHp ButterHp in out fco Butterworth Hochpass Filter Dieses Filter ist eine Implementierung eines Butterworth Hochpass Filters zweiter Ordnung mit einer Flankensteilheit von 12 dB pro Oktave Die Module ButterBp ButterBr und ButterLp sind die entsprechenden Bandpass Kerbfilter und Tiefpass Versionen dieses Filters Eingang f r ein Audio Signal Cutoff Frequenz Gefiltertes Audio Signal 5 4 2 MoogVcf MoogVcf 1 Emulation eines Moog Tiefpass Filters Dieses Filter ist eine digitale Emulation der Moog Diodenleiter Konfiguration Das Filter ger t bei einer Resonanz von etwa 1 in Selbst oszillation Wegen der zugrunde liegenden Csound Implementierung dieses Filters ist es wichtig da das Eingangssignal eine maximale Amplitude von 1 hat da es ansonsten zu Clipping kommt Eingang f r ein Audio Signal mit maximaler Amplitude von 1 Cutoff Frequenz Resonanz Gefiltertes Audio Signal 5 5 INPUT OUTPUT 37 5 4 3 MoogVcf2 MoogVcf2 Emulation eines Moog Tiefpass Filters Im Gegensatz zu MoogVcf kann dieses Modul auch Audio Signale mit einer gr eren Amplitude als 1 filtern Daf r kann die Resonanz nicht bis zur Selbstoszillation erh ht werden da es ansonsten zu extremen Verzerrungen kommt in E
55. enden Events wird ebenfalls ausgewertet und auf den Bereich 0 bis velscale skaliert Ebenso werden Channel Aftertouch Events empfangen und skaliert ausgegeben Maximaler Wert auf den Velocity On Werte skaliert werden minafttch Minimaler Wert auf den Aftertouch skaliert werden soll maxafttch Maximaler Wert auf den Aftertouch skaliert werden soll 5 2 3 NoteQuantizer NoteQuantizer 1 MIDI Noten Quantisierer NoteQuantizer rundet das ankommende Kontroll Signal so da nur MIDI Notenummern der eingestellten Noten ausgegeben werden Die Augabe von NoteQuantizer kann mit Hilfe des Midi2Frq Moduls in die entsprechende Frequenz umgerechnet werden 5 3 EFFECTS 35 Eingang fiir ein Kontroll Signal Scalar re Note a Schalter Fir die Noe D g Schalter fir die Note a Schalter fir die Note A ais b Schalter fir die Noten out Schalter fiir die Note F TE aR BEN ON e ir die N SEN IT TR TR Ben IE 5 2 4 SlewLimiter SlewLimiter 1 in out time Abstiegsbegrenzer Portamento Controller Mit SlewLimiter wird ein linearer bergang zwischen zwei aufeinanderfolgenden Werten des Eingangssignals ber die eingestellte Zeit spanne erzeugt Dadurch k nnen abrupte Parameterspr nge gegl ttet werden in Eingang f r ein Kontroll Signal Anstiegs Abstiegszeit in Sekunden Begrenztes Kontroll Signal 5 3 Effects 5 3 1 Delay Delay 1 in out time Delay f r Audio Signale Das ankomm
56. ent p 112 111 Class ConfigControl Module view configurator A 11 4 Class ConfigControl _ builtin__ object ConfigControl Known Subclasses ConfigBooleanCheck ConfigColourSelect ConfigFloat ConfigInt ConfigStringMultiLine ConfigStringSingleLine ConfigControl Controller for the configurator input controlls It s an abstract class Inherited classes can implement abstract invalidateVarVal self val for validation of the input to the control A 11 4 1 Methods init__ self parent configParser var Standardconstructor Parameters parent The root panel of a wx Notebook category page type wx Panel configParser ConfigParser in charge of this control type configurator ConfigParser var ConfigVarrepresented through this control type config Config Var Overrides _builtin__ object _init_ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control hasChanged self val Checks if the value of the configVarhas changed Parameters val The value returned by the control type self config Var value Type 112 Module view configurator Class ConfigControl invalidateVarVal self val Method for invalidation of the configVar s value Return Value A warning message if the Value is invalid else False type boolean string onOK self event Calls the callback method
57. enumeration list enum 97 Class Config Var Module tools config A 10 3 1 Methods category name default setting None enum Standardconstructor Like ConfigVar constructor with additional param enum Parameters default Index in self enum type int enum List of predefined possible values to be selected type list Overrides tools config ConfigVar _init__ Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _repr__ _setattr__ _str_ Inherited from ConfigVar getVal read setVal write A 10 3 2 Properties A Dr Vame OP A 10 3 3 Instance Variables Default Value value of self enum self _default enum List of predefined possible values to be selected type list Actual index of ConfigEnumVar Value of self enum self Index Inherited from ConfigVar category p 98 description p 98 name p 98 node Found p 98 nodeType p 98 valueType p 98 A 10 4 Class Config Var _ builtin__ object Config Var 98 Module tools config Class Config Var Known Subclasses ConfigEnumVar ConfigVar Encapsulates information of a Config Variable and the functionality to write and read it 111 Always use the Property Value for accesing and setting the Value of ConfigVar A 10 4 1 Methods self category name default setting None node Type 2 Standardconstructor Parameters category Category to which ConfigVar belongs to type config C
58. er Liste von Cabel Modulen 3 39 abel Contratar oscar a de aa a eed 3 3 1 Csound Einstellungen 4 234 4 4 00 RR aaa 3 3 2 Anpassen der Benutzeroberfl che 333 Verzeichnisse m mn 4 Benutzeroberfl che oo vo eo I II 15 15 16 16 16 20 22 25 INHALTSVERZEICHNIS LLL File a 2 00 ie ea ae ae booed ook a ed Sow ah ly S45 25 4 1 2 Modales 26 A EEN 26 42 Arbeitsplatz s cgs aro a A e A en 27 4 2 1 Module 27 42 2 Instrumente os eds ae a o e a a a 29 4 3 Statusleiste eaei e na e a aa a a e a 30 ASA Zoomlaktor o 9 esta e SSS na ee da LA ae 30 A432 POD 6 443d Erhard CACA 30 4 3 3 Pleynndsiop Kospf a2 82 eene au wa san aa 30 Module 32 5 1 Amps Mixers e 2 oda ra ee ee A 32 SEF AMD A II EE 32 AA E 32 Ded CONO em eb and ee id Ge a A E 33 9 2 1 MidiCtrlin e 2 0 be a se eee eb e he ae dd e 33 9 2 2 MidiNoteln 5 2 20 de a sr aa lo de a le c E 33 5 2 3 N teQ antizet os sens ma ser ea e e a sh 34 52 4 Blewlam ter s ss eeik ih es e Soe a ee BR a aa 35 a aad ae a a thee ae at e eae e n Ae Gs aaa a BS 35 Bl Delay seeren oe a ee Bk E 35 A a o ae nn ne re a es e nme a r 36 Sal Utter 22 ss poas ais hon a aip hon ao eS eee e D 36 5 42 MoogVef sz adis a ra aaa ice 36 gr WIR Ve 2 2 ado aate pop doana aueh Be 37 DD Input CPI 20 ela aga ne er 37 5 5 1 PemMonoln 22 22 Con 37 5 5 2 O 0200000000000 ei 37 5 5 3 PemStereoln aoaaa 38 5
59. eturn Value A warning message if the Value is invalid else False type boolean string Overrides view configurator ConfigControl invalidateVarVal extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _setattr_ _str__ Inherited from ConfigControl hasChanged onOK paintCtrlWhite paintThelnva lidRed updateVar ValDict 115 Class ConfigParser Module view configurator A 11 6 2 Instance Variables Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 parent p 112 A 11 7 Class ConfigParser _ builtin__ object ConfigParser A 11 7 1 Methods __init__ self config parent worksp Standardconstructor Parameters config The config model to be parsed type tools config Config Overrides _builtin__ object _init_ fillCategory Notebook self get Boolean VarCtrl self parent var 1d 1 size wx Size 1 1 get CategoryPanel self category get Colour VarCtrl self parent var 1d 1 size wx Size 60 20 getControl sc var parent S O getEnumVarCtrl self parent var getFloat VarCtrl self parent var id 1 size wx Size 1 1 getGroupPanel self vars parent getIntVarCtrl self parent var id 1 size wx Size 1 1 get List Var tr sel parent war Y getStringVarMultiLineCtrl self parent var id 1 size wx Size 1 getStringVarSingleLineCtrl self p
60. h__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 15 1 2 Instance Variables Description inVar Slider SpinCtrl controls this inVar type model var In Var parent Parent window for CabelSlider type wx Window A 15 2 Class CabelValueFrame _builtin__ object E model observer Observer _ builtin__ object E wx _core Object 7 wx _core EvtHandler 7 wx _core Window E wx _windows TopLevelWindow E wx _windows Frame CabelValueFrame CabelValueFrame Frame to show input values of a model module and sliders to change those values 135 Class CabelValueFrame Module view valueframe A 15 2 1 Methods module parent model controller position 0 0 Standard constructor Parameters module This frame can change module s inVars type model module Module parent Parent of CabelValueFrame always on top of parent type wz Window model Corresponding model for this frame type model workspace Workspace controller type model controller CabelController position Initial position of frame type tuple Called when closing value frame onKey self event Called when getting a key event input update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o he change Parameters arg An argument passed to the notifyObservers method t
61. he configurator automatically notifies all in model module Workspace registered observers The argument for the observers is the function name type string A 10 9 Class View builtin__ object tools config Category 7 View View Category for graphic representations See documentation of superclass Category 106 Module tools config Class View A 10 9 1 Methods _ self configDoc configXmlLocation Standardconstructor Parameters configDoc config xml DOM type minidom Document configXmlLocation Path to config xml type string Fills classvar vars with its Config_Var Objects Overrides tools config Category fillWithDefaultVars Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ __repr__ _setattr__ str Inherited from Category getDefault getEnumIndex get Val get Var insert Var setE numIndex set Val A 10 9 2 Instance Variables Description Inherited from Category categoryNode p 94 configDoc p 94 configXmlLocation p 94 name p 94 vars p 94 A 10 9 3 Class Variables Name Description BACKGROUNDCOLOU Value 0 type int R BOTTOMWINDOW_AC Value 10 type int TIVEPAGE BOTTOMWINDOW_HE Value 11 type int IGHT BOTTOMWINDOW_RE Value 9 type int MEMBERPROPERTIE S BOTTOMWINDOW_SH Value 8 type int OW continued on next page 107 Class View Module tools config Name Description
62. herited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ A 16 2 2 Instance Variables config relevant config Vars OA type tools config Config View fileName Name of the workspace e S filePath Save Path of the workspace ee OS O OOO ioTextCtrl Gets the stdout and stderr output of the app ee Tiersen AEDS continued on next page 141 Class CabellOTextCtrl Module view workspace Description statusbar Statusbar of CabelFrame type wxz StatusBar workspace Workspace for synth building EEE 1 Cuello zoom Zoom en Vining A 16 3 Class CabellOTextCtrl _builtin__ object A model observer Observer _ builtin__ object E wx _core Object E wx _core EvtHandler 7 wx _core Window 7 wx _core Control 7 wx _controls TextCtrl CabellOTextCtrl CabellOTextCtrl TextControl to which all the stderr stdout messages will be written A 16 3 1 Methods init__ self parent controller Standardconstructor Parameters parent Parent on which the textControl should be put on type wr Panel controller Cabel controller with link to the instances of model view workspace 142 Module view workspace Class CabellOTextCtrl update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o arg An argument passed to
63. hould be removed type model module Module setloTextCtrl self control set Value self var value Set var to value Parameters var Variable which we want to change type model var In Var value New value for variable type float Raises VarValueOutOfRangeError If new value is out of range Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _ setattr__ str Inherited from Observable addObserver clearChanged countObservers deleteOb servers hasChanged notifyObservers removeObserver resumeObservation setChanged suspendObservation A 7 2 2 Instance Variables Description instruments List of intruments type list A 7 2 3 Class Variables 85 Class Workspace Module model workspace Description Interface to config categories Value lt tools config Config instance at 0x01 879288 gt type tools config Config 86 Module model xmlGenerator A 8 Module model xmlGenerator A 8 1 Class XmlGenerator _ builtin__ object XmlGenerator XmlGenerator Generates Cabel Xml A 8 1 1 Methods __init__ self fileLocation Standardconstructor Parameters fileLocation Complete path to the save file type string Overrides _builtin__ object __init__ etXml self workspace Returns a Xml node with reference instance and connections nodes Parameters workspace type view workspace CabelFrame Return Value Xml no
64. i es Rauschen 5 9 2 SawVco SawVco 1 fra out shape S gezahn Oszillator SawVco erzeugt eine periodische S gezahnschwingung mit norma lisierter Amplitude 1 Die Wellenform kann mit dem shape Parameter stufenlos von invertierter S gezahnwelle ber Dreieckwelle bis hin zur normalen S gezahnwelle ein gestellt werden Frequenz Wellenform invertierter S gezahn Dreieck S gezahn Audio Signal des S gezahn Oszillators ES 6 KAPITEL 5 MODULE 5 9 3 SineVco SineVco 1 frq out Sinus Oszillator SineVco erzeugt eine periodische Sinusschwingung mit normalisierter Amplitude 1 out Audio Signal des Sinus Oszillators 5 9 4 SquareVco SquareVco 1 fra out pw Pulswellen Oszillator SquareVco erzeugt eine periodische Pulswelle mit normalisierter Amplitude 1 Die Pulsbreite kann mit dem pw Parameter stufenlos eingestellt werden Sr out Audio Signal des Pulswellen Oszillators Kapitel 6 Beispiele Dieses Kapitel zeigt Ihnen Schritt f r Schritt wie Sie ein eigenes Cabel Instrument er zeugen und nutzen k nnen 6 1 Einfacher subtraktiver Synthesizer Die einzelnen Arbeitsschritte dieses Beispielinstruments sind im examples Unterverzeich nis Ihrer Cabel Installation als durchnummerierte Dateien enthalten Somit werden wir nur auf die wichtigsten nderungen der einzelnen Schritte eingehen und Sie k nnen sich die genauen Einstellungen der Instrumente anhand der Beispieldateien ansehen 6
65. iew workspace CabelFrame __init__ type wx Event onRecent self event Open file from recent open files menu Parameters event Event associated with this function type wz Event onRemoveActModule self event Remove a module If VIEW_MODULEDELETEWARNING is enabled ask before removing Parameters event Event associated with this function type wz Event onSave self event Respond to the SSavemenu command Parameters event Event associated with this function type wz Event onSaveAs self event Respond to the SSave Asmenu command Parameters event Event associated with this function type wz Event onScalelnActModule self event Scales into Zoom In the selected Module with default zoom from preferences Parameters event Menu Event associated with this method in view workspace CabelFrame getModuleMenu type wz Event 127 Class CabelController Module view controller onScaleOut ActModule self event Scales out of Zoom Out the selected Module with default zoom from preferences Parameters event Menu Event associated with this method in view workspace CabelFrame getModuleMenu type wz Event onShowModuleX ML self event Opens the Module Xml file in editor Parameters event Menu Event associated with this method in view workspace CabelFrame getModuleMenu type wz Event onSize self event Saves wether view workspace CabelFrame is maximized or not in the config xml
66. in Listing 7 1 in Zeile 2 der lt modul gt Knoten angegeben Auf diese Weise k nnen Programme die XML Dateien verarbeiten einfach berpr fen ob die bergebenen XML Dateien g ltig sind Diesen Prozess nennt man auch Validieren von XML Dateien Die meisten aktuellen XML Editoren verstehen XML Schema und validieren XML Do kumente bereits beim Erstellen Dadurch werden die f r den Menschen relativ schwer lesbaren XML Schemas zu so etwas wie einer Vorlage und erleichtern das Anlegen eigener XML Dateien Weitere Informationen rund um die eXtendable Markup Language finden Sie unter e http de selfhtml org xml intro htm oder e http de wikipedia org wiki XML 7 2 Aufbau der Cabel Modul XML Dateien PulseLfo 1 frq out amp phi Abbildung 7 1 Das in Listing 7 1 beschriebene PulseLFO Modul mit zugeh rigem Wer tefenster in der Cabel Arbeitsfl che Listing 7 1 Die XML Datei f r das Cabel Modul PulseLFO lt xml version 1 0 encoding UTE 8 gt 2 lt modul xmlns xsi http www w3 org 2001 XMLSchema instance 3 xsi noNamespaceSchemaLocation modul xsd 4 name PulseLfo 5 description Pulse _low _frequency oscillator clock signal gt 6 lt input gt 3Encodings legen fest welcher Zeichenvorrat in der Datei verwendet wird Erster alle weiteren XML Knoten umschliessender Knoten Unter Windows z B XMLSpy von Altova http www altova com de 24 25 2
67. ingang f r ein Audio Signal Cutoff Frequenz Resonanz Gefiltertes Audio Signal 5 5 Input Output 5 5 1 PcmMonoln out Eingang f r ein Mono Signal von der Soundkarte Ausgang f r das ankommende Audio Signal 5 5 2 PcmMonoOut PcmMonoOut 1 in Ausgabe des ankommenden Mono Signals an die Soundkarte Achten Sie darauf da bei Verwendung dieses Moduls der Parameter Channels im Csound Options Dialog zu erreichen ber das Men Options Preferences auf 1 gesetzt ist in Eingang fiir ein Audio Signal 38 KAPITEL 5 MODULE 5 5 3 PcmStereolIn PcmStereoln 1 left right Eingang f r ein Stereo Signal von der Soundkarte left Ausgang f r das ankommende Audio Signal des linken Kanals Ausgang f r das ankommende Audio Signal des rechten Kanals 5 5 4 PcmStereoOut PcmStereoOut 1 in_l in_r Ausgabe des ankommenden Stereo Signals an die Soundkarte Achten Sie darauf da bei Verwendung dieses Moduls der Parameter Channels im Csound Options Dialog zu erreichen ber das Men Options Preferences auf 2 gesetzt ist Audio Signal f r linken Stereokanal der Soundkarte Audio Signal f r rechten Stereokanal der Soundkarte 5 6 Maths 5 6 1 AudioAdd AudioAdd 1 inl sum in2 Addiert die beiden ankommenden Audio Signale Erstes Audio Signal Zweites Audio Signal Summe der beiden ankommenden Audio Signale 5 6 MATHS 39 5 6 2 AudioMultiply AudioMultiply 1 inl pro in2 Multipliziert
68. ions self Print connections and their indices to standard output rint Modules self Print contained modules and their indices to standard output Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 3 1 2 Instance Variables Description connections Connections between intrument modules type list modules Modules contained in intrument type list 69 Module model module A 4 Module model module A 4 1 Class Module _ builtin__ object Module Module A Module contains its user defined opcode text and lists of its In and OutVars A 4 1 1 Methods __init__ self name description opcode _id 0 Standard constructor Parameters name Name of module user defined opcode type string description describes module type string opcode Text of user defined opcode for name type string id Unique id for module type integer Overrides _builtin__ object __init__ addGlobal self globus description add globus global is a fukin keyword to the list of the module s global vars nice to save tables in so that the csoundGenerator can extract them and doesn t have o generate one for every instance of the module Parameters globus new global var for the module as crude csound code type str description description for the global var type str 70 Module model module Class Module addInVar self i
69. jeden Ausgabeparameter des Moduls einen Knoten vardef der folgende Attribute besitzt e name Anzeige Name der Ausgabe Variable auf dem Cabel Modul e csType Wie in Kapitel 4 2 1 1 beschrieben der Csound Typ der Ausgangs Va riablen einer der Werte a f r Audio Signal k f r Kontroll Signal oder i f r Instrument Signal e description Beschreibung der Eingabe Variable Reihenfolge und Typ der einzelnen Ausgabeparameter mu den Parametern des User defined Opcodes im Opcode Knoten Kapitel 7 2 5 entsprechen 7 Attribute die mit einem versehen sind sind verpflichtende Attribute die f r ihren Knoten ange geben werden m ssen damit das XML Modul valide ist Rate in der das Fingangssignal verarbeitet werden soll Rate in der das Ausgangssignal verarbeitet werden soll 60 KAPITEL 7 SCHREIBEN EIGENER MODULE 7 2 4 Globale Variablen In Cabel Modulen k nnen auch so genannte globale Variablen definiert werden Diese werden in dem Cabel XML Knoten global in Listing 7 1 Zeile 18 22 angegeben Globale Variablen dienen vor Allem dazu Funktionstabellen einmalig global zu definie ren Dies spart Speicherplatz da sie nicht von jeder Modul Instanz auf der Arbeitsfl che neu initialisiert werden m ssen sondern global f r das ganze Instrument g ltig und an sprechbar sind Der Knoten global enth lt f r jede globale Variable einen Konten def Diese def Knoten sind Text Nodes deren einziges Attribut das optional
70. ledWindow GetBackgroundColour with the in config xml defined Colour Return Value Background colour for workspace type wz Colour Overrides wx _core Window GetBackgroundColour 144 Module view workspace Class CabelSplitter Window Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ A 16 5 Class CabelSplitter Window _ builtin__ object 7 wx _core Object E wx _core EvtHandler E wx _core Window 7 wx _windows Splitter Window CabelSplitterWindow CabelSplitter Window Horizontal splitter window which expands its top window when resized A 16 5 1 Methods init__ self parent id Standard constructor Parameters parent Parent of this splitter window type view workspace CabelFrame id ID of this splitter window type int Overrides wx _windows SplitterWindow __init__ get Bottom WindowHeight self Return height of bottom window in pixels Return Value Size of bottom window type int 145 Class CabelSplitter Window Module view workspace topPane The top pane type wx Pane setBottomWindowHeight self height Set the height of the Bottom Window and unsplit if new bottomWindowHeight is lt 10 Parameters height Height of the bottom window type int Split top and bottom pane of splitter window Sets the config xml Var and checks the options menubar entry unSplit self Unsplit Only self topPane visible
71. m object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __setattr__ _str__ Inherited from ConfigControl hasChanged invalidateVarVal onOK paintCtrIWhi te paintThelnvalidRed update VarValDict A 11 2 2 Instance Variables Name Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 parent p 112 110 Module view configurator Class ConfigColourSelect A 11 3 Class ConfigColourSelect _ builtin__ object 7 view configurator ConfigControl _ builtin__ object 7 wx _core Object E wx _core Sizer 7 wx _core GridSizer wx _core FlexGridSizer ConfigColourSelect A 11 3 1 Methods init__ self parent id configParser configColour Var size label pos wx Point 1 1 style 0 Overrides view configurator ConfigControl __init__ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __setattr__ _str__ Inherited from ConfigControl hasChanged invalidateVarVal onOK paintCtrIWhi te paint TheInvalidRed updateVarValDict A 11 3 2 Instance Variables Name Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 par
72. meters i X coordintate of module on workspace type wrz Point y Y coordintate of module on workspace type wz Point module Corresponding model module Module type model module Module controller CabelController type view controller CabelController Overrides _builtin__ object __init__ raw self dc Draw this module on workspace Parameters dc Device context on which to draw the module bitmap type wx DC drawRelative self de origin Draw this module relative to origin in our workspace Parameters dc Device context on which to draw the module bitmap type wx DC origin Actual origin of workspace type wx Point 130 Module view module Class Module getInput self num Returns point of input plug Parameters num Number of input rtype wx Point type int Return Value Point of input getInVar self num Returns inVar of input num Parameters num Number of output rtype model var InVar type int Return Value InVar get Name self Return name of module Return Value Name of module type string etOutput self num Returns point of output plug Parameters num Number of output rtype wx Point type int Return Value Point of output getOutVar self num Returns OutVar of output num Parameters num Number of output rtype model var OutVar type int Return Value OutVar 131 Class Module Module view module If point is on an input return
73. meters event Event associated with this function type wr Event onMouseLeftDown self event Respond to left mouse button down on workspace Parameters event Event associated with this function type wr Event onMouseLeft Up self event Respond to left mouse button up on workspace Parameters event Event associated with this function type wz Event 125 Class CabelController Module view controller onMouseMiddleDown self event Respond to middle mouse button down on workspace Parameters event Event associated with this function type wz Event onMouseMotion self event Respond to mouse motion on workspace Parameters event Event associated with this function type wz Event onMouseRightDown self event Respond to right mouse button down on workspace Parameters event Event associated with this function type wr Event onNew self event Respond to the Newmenu command Parameters event Event associated with this function type wz Event onOpen self event Respond to the penmenu command Parameters event Event associated with this function type wr Event onOptionsOpen self event Open the Options Dialog Parameters event Event type wr Event 126 Module view controller Class CabelController EventHandler for start stop csound process from the file menu or with shortcut ctrl y Parameters event Menu Event associated with this method in v
74. n Delete connection Test if we need to create a new instrument for the disconnected modules Parameters connection Connection which should be deleted type model connection Connection getModuleByld self id Returns module with this id Parameters id Id of wanted module rtype model module Module type int Return Value Module with this id or None if not found 83 Class Workspace Module model workspace getModuleDescription self module Return description string of module Module whose description we want Ortype str type model module Module Return Value Description of module get Value self var Return actual value of var Parameters var Variable whose value we want Ortype float type model var In Var Return Value Value of var get VarDescription self var Return description string of variable Parameters var Module whose description we want Ortype str type model module Module Return Value Description of module isPlaying self Return wether cabel is in playing state or not lay self Starts csound in separate process rintInstruments self Print instruments with their contained modules and indices to standard output 84 Module model workspace Class Workspace removeModule self module Remove module and all its ingoing and outgoing connections from workspace Removes entry in self _modulesDict dictionary Parameters module Module which s
75. n _ builtin__ object Connection Connection between two modules A Connection is defined by its start Var and its end Var A 1 1 1 Methods __init__ self from Var to Var Standard constructor Parameters fromVar Start Var of this connection type model var Out Var toVar End Var of this connection type model var In Var Overrides _builtin__ object __init__ Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _setattr__ _str_ A 1 1 2 Instance Variables Description fromVar Start Var of this connection type model var Out Var toVar End Var of this connection type model var In Var 66 Module model csound A 2 Module model csound A 2 1 Class CsoundGenerator _ builtin__ object model observer Observer CsoundGenerator CsoundGenerator Generates csound code from actual state of workspace A 2 1 1 Methods __init__ self workspace Standard constructor Parameters workspace Workspace on which the CsoundGenerator works type model workspace Workspace export ToCsd self filePath Export options orchestra and score into CSD file Parameters filePath Path to CSD file relative or absolute type str enerate self Generates the Csound Code out of the in the workspace bundled objects Return Value CSound code type string 67 Class CsoundGenerator Module model cesound Starts CSD generation and
76. n Var add inVar to the list of the module s input vars Parameters inVar new input to the module type model var in Var addOutVar self out Var add outVar to the list of the module s output vars Parameters outVar new output of the module type model var out Var getGlobalAsCsoundCode self index Returns the GlobalVar definition as a crude csound code string If there is a description stored it is appended as a comment Parameters index The index of the global type int Return Value The global var definition as crude csound code string with or without comment type str rintInputs self Print input names indices their values and value ranges to standard output print Outputs self Print output names and indices to standard output setIn Var Values self values Set inVar values Parameters values List of tuples each describing a var by its id and value type list Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ 71 Class Module Module model module A 4 1 2 Instance Variables description describes module e fullName Name of module including relative path eg globals List of Strings for global statements I id Unique id for module ee instrument Instrument containing this module OT epenaletirammntinaramen O inVars List of input variables EEE Er name Name of module user defined opcode Peg opcode Text
77. n nennen 109 A 11 2 Class ConfigBooleanCheck 2 a4 3 dx os du zur eH 110 A 11 3 Class ConfigColourSelect sa 2 4 8 are 111 A114 Class GonfisControl 3 4 ei Hr eh 112 Ao Class Comune Oat vw hoe ack ba dk od BOS e ora tin par ae 114 A 11 6 Class ConfigInt ue da oe a Pk Ae a wl we we sa 115 A 11 7 Class Conta Parser 3 0 3 5 aus er aaa 116 A 11 8 Class ConfigStringMultiLine 2 2 2 rn nn 117 A 11 9 Class ConfigStringSingleLine a aoa a a 118 INHALTSVERZEICHNIS A 12 Module view connection A121 Class Connection o 224 a A ee EH A 12 2 Class ModuleConnection lt lt lt lt Ala Module viewicontroller s s secs ie sr a o e Cee ES A 13 1 Class CabelController 2 2 5 8 624s bes as de su AA Module view module 2624 05 a a a Ava Class Module 2 0 5 24 gt 53 2a 2 245 A in hs AAS Module view val efr am o cols 3 2 0 45 25 a 24245 der A 15 1 Class CabelSlider coi 23 8 se e SDS A 15 2 Class CabelValuePrame u x 2 2 2 2 3 48 a a 8 oe ee koe eae A 16 Module view workspace 44 4144444494456 444 84424 844 44 A 16 1 Class CabelBottomWindow lt lt AG Class CabelFrame siii AR RE a A 16 3 Class CabellOVextCtrl 2 ae a ee eh das A 16 4 Class CabelScrolledWindow 2 222 22 2 2 a nennen A 16 5 Class CabelSplitterWindow 2 2 2 nn nn A 16 6 Class CabelStatusBar 22 4 se u 5 a 2 a0 wa a aan ad B Weiterf hrende
78. nd von Hand beenden und neu starten um Ihre Anderungen zu h ren 3 3 2 Anpassen der Benutzeroberfl che Der Reiter User Interface Abbildung 3 3 erm glicht es Ihnen das Erscheinungbild aber auch das Verhalten der Benutzeroberfl che von Cabel an Ihre Bed rfnisse anzupassen 1 Workspace Der Workspace ist die eigentliche Arbeitsfl che von Cabel auf der Sie Module platzieren und miteinander verkn pfen In der Konfigurationsgruppe Workspace k nnen Sie e die Hintergrundfarbe Workspace Colour der Cabel Arbeitsfl chein in einem Farb auswahldialog wie in Abbildung 3 4 dargestellt ver ndern und e die Gr e Workspace Width Height des scrollbaren Bereichs der Arbeitsfl che festlegen 2 Full Module Names Durch das Aktivieren des Kontrollk stchens Full Module Names wird in den Cabel Mo dulen der relative Pfad ausgehend vom Modul Verzeichnis der entsprechenden XML Modul Datei angezeigt Ansonsten ist nur der Modulname ohne relativen Pfad zu sehen 3 Warning On Removing Modules Das Kontrollk stchen aktiviert deaktivert die Ausgabe von Warnungen beim L schen von Cabel Modulen von der Arbeitsfl che siehe Kapitel 3 3 3 3 3 CABEL KONFIGURATOR 21 User Interface Directories Workspace Workspace Colour mammum Workspace Width 3000 Workspace Height 3000 Full Module Names Warning on Removing Modules Cable Connection Cable Colour Cable Sagging 30
79. nformation siehe http www csounds com manual htm1 f html Mengl Benutzerdefinierter Opcode 12siehe Kapitel 3 3 3 auf Seite 22 7 3 EINBINDEN DER XML MODUL DATEIEN IN CABEL 61 Haben sie ein valides Cabel XML Modul dort gespeichert erscheint es in der Cabel Mo dul Liste nachdem Sie unter Options Refresh Module List die Liste der Cabel Module aktualisiert haben Beschrieben in Kapitel 3 2 auf Seite 16 7 3 1 Skinning von Cabel Modulen Sie k nnen f r jedes Cabel Modul ein Hintergrundbild festlegen und somit das Erschei nungsbild Ihrer Module gestalten Dazu legen Sie eine JPEG Bilddatei mit demselben Namen des Moduls das Sie skinnen m chten in dessen Modul Verzeichnis ab also z B modulators PulseLfo jpg f r modula tors PulseLfo xml Das Bild wird zentriert unter die Darstellung des Moduls gesetzt und falls das Bild gr er als das Modul ist wird die Modulgr e an die des Bildes angepa t 13 Joint Photographic Experts Group Bilddatei mit der Endung JPG Kapitel 8 Automatisierung von Cabel Cabel kann mit Hilfe von Python automatisiert werden ffnen Sie ber das Men mit Options Show Bottom Pane die Python Shell ber die Variable w haben sie Zugriff auf die Funktionen der Klasse model workspace siehe Anhang A 7 S 81 die die Funktionalit t von Cabel implementiert Weitere In formation zu den Funktionen von model workspace entnehmen Sie bitte der Cabel API in Anhang A 8 1 Generierung eines
80. ng Overrides tools config 103 Class Setting Module tools config fllWithDefault Vars self Fills classvar vars with its Config Var Objects Overrides tools config ory fillWithDefault Vars Read the list Var from config xml and return the obtained list Return Value The list Var saved in config xml type list rite self _list None rites the as argument passed list to the config xml Therefore it deletes the actual Nodes and creates it new from self _list Inherited from object _delattr__ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ Inherited from Category getDefault getEnumIndex get Val get Var insert Var setE numIndex set Val A 10 7 2 Instance Variables Description Inherited from Category categoryNode p 94 configDoc p 94 configXmlLocation p 94 name p 94 vars p 94 A 10 8 Class Setting _ builtin__ object Setting Setting Encapsulates information which serve for the graphical representation of the config xml 104 Module tools config Class Setting A 10 8 1 Methods __ self description displayName Standardconstructor Parameters description Description of corresponding configVar Used for Tooltip type string displayName Display name of corresponding configVar type string Overrides _builtin__ object __init__ readNode self setting Node Read settingNode of corresponding configVar node in c
81. ngleLine A 11 9 1 Methods __init__ self parent id configParser configString TextNode Var _size Overrides view configurator ConfigControl __init__ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __setattr__ _str__ Inherited from ConfigControl hasChanged invalidateVarVal onOK paintCtrIWhi te paintThelnvalidRed updateVarValDict A 11 9 2 Instance Variables Name Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 parent p 112 118 Module view connection A 12 Module view connection A 12 1 Class Connection _ builtin__ object Connection Known Subclasses ModuleConnection Connection Graphic class for connection from start point to end point A 12 1 1 Methods init__ self startPt endPt Standard constructor Parameters startPt Start point of connection type wxz Point endPt End point of connection type wxz Point Overrides _builtin__ object __init__ draw self dc zoom 100 Draw this connection in our workspace Parameters dc Device conetext on which to draw type wz DC zoom Zoom of Connection default 100 type int 119
82. of the CabelConfig control if the accelerator for the OK or Apply Buttons ALT O or ALT A are pressed aintCtrIWhite self event Paints the control as it was originally aint ThelnvalidRed self Paints the control red updateVarValDict self val Checks if the value val for the ConfigVar has changed if it is valid and caches the config Var value pair in the responsible configParser Parameters val The value returned by the control type self config Var value Type Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __repr__ _ setattr__ str A 11 4 2 Instance Variables configParser ConfigParser in charge of this control PE type configurator ConfigParser config Var ConfigVarrepresented through this control PA type tools config Config Var ctrl The input control has to be set in the constructor of inherited class type wxz Control parent The root panel of a wx Notebook category page 113 Class ConfigFloat Module view configurator A 11 5 Class ConfigFloat _ builtin__ object E view configurator ConfigControl _ builtin__ object 7 wx _core Object E wx _core Sizer 7 wx _core BoxSizer ConfigFloat A 11 5 1 Methods __init__ self parent id configParser configFloat Var _size Overrides view configurator ConfigControl __init__ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he c
83. of user defined opcode for name ee o S S outVars List of output variables lle S 72 Module model observer A 5 Module model observer A 5 1 Class Observable _ builtin__ object Observable Known Subclasses Workspace Observable This class represents an observable object or data in the model view paradigm It can be subclassed to represent an object that the application wants to have observed An observable object can have one or more observers After an observable instance changes an application calling the Observable s notifyObservers method causes all of its observers to be notified of the change by a call to their update method A 5 1 1 Methods Standard constructor Overrides _builtin__ object __init__ addObserver self observer Adds a new observer to the list of observers Parameters observer New observer to add type Observer Indicates that this object has no longer changed or that it has already notified all of its observers of its most recent change This method is called automatically by the notifyObservers methods countObservers self Returns the number of observers of this object rtype int Return Value Number of observers 13 Class Observer Module model observer deleteObservers self Clears the observer list so that this object no longer has any observers hasChanged self Tests if this object has changed rtype bool Return Value If this object has changed
84. on to add to view workspace type model connection Connection 138 Module view workspace Class CabelFrame addModule self module pt Adds module to view workspace Parameters module module to add to view workspace type model module Module pt Position on the workspace of module to add type wx Point createDraggedCable self startPt endPt Create connection between startPt and endPt as visual feedback for connection mode Parameters startPt Start point of dragged cable type we Point endPt End point of dragged cable type wr Point create Workspace self workspace Reader get Connections self Return list of view connections Return Value List of view connections type List get DraggedCable self Return dragged cable object Return Value Visual feedback when connection two modules type model view connection Connection get ModuleAt self pt Return the first module found at given point Parameters pt Point to test if on a module rtype view module Module type wr Point Return Value Module at point or None 139 Class CabelFrame Module view workspace getModuleMenu self Return menu when right clicking on a module get Modules self Return list of view modules Return Value List of view modules type List get ModulesMenu self cmlModuleList Gets the Menu for all the defined Xml Modules Parameters xmlModuleList List of tuples which rep
85. onfig xml Parameters settingNode Node in which the setting params are stored type xml dom minidom Node update View self workSpace Calls the update methods of all observers in model workspace Parameters workSpace The Cabel view workspace type view workspace CabelFrame riteNode self settingNode rite settingNode to corresponding configVar node in config xml Parameters settingNode Node in which the setting params are stored type xml dom minidom Node Inherited from object __delattr_ _getattribute_ _hash__ new__ _reduce__ _reduce_ex__ _repr__ _setattr__ _str_ A 10 8 2 Properties ctrlLength A 10 8 3 Instance Variables 105 Class View Module tools config Description choose Specifies wether the configVar value can be choosen out of a control Possible values are file path or None type string ctrlHeight Number of lines for multiLine string configVar A e description Description of corresponding configVar Used for Tooltip type string dialog Show ConfigVar in the preferences dialog type boolean displayName Display name of corresponding configVar type string group Corr ConfigVar belongs should be displayed grouped in a box labeld with this string ConfigVars with a group setting None are displayed solemnly type string hint A link to a hint text fragment EEE notNone Must not be None the value EEE Pere updateFunc If this is set t
86. ontrol in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation invalidateVarVal self val Method for invalidation of the configVar s value Return Value A warning message if the Value is invalid else False type boolean string Overrides view configurator ConfigControl invalidateVarVal extit inherited documentation Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __setattr__ _str__ Inherited from ConfigControl hasChanged onOK paintCtrlWhite paintThelnva lidRed updateVarValDict A 11 5 2 Instance Variables 114 Module view configurator Class ConfigInt Name Description Inherited from ConfigControl configParser p 112 configVar p 112 ctrl p 112 parent p 112 A 11 6 Class ConfigInt _ builtin__ object 7 view configurator ConfigControl _ builtin__ object 7 wx _core Object 7 wx _core Sizer 7 wx _core BoxSizer ConfigInt A 11 6 1 Methods self parent id configParser configlnt Var _size Overrides view configurator ConfigControl __init _ callback self event irtual method of ConfigControl Should call the updateVarValDict with the value of he control in order to process the input of the control Overrides view configurator ConfigControl callback extit inherited documentation invalidate Var Val self val Method for invalidation of the configVar s value R
87. ory A Csound config Csound Category for Csound specific Information See documentation of superclass Category 100 Module tools config Class Csound A 10 5 1 Methods it__ self configDoc configXmlLocation Standardconstructor Parameters configDoc config xml DOM type minidom Document configXmlLocation Path to config xml type string Fills classvar vars with its Config Var Objects Overrides tools config Category fillWithDefault Vars Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ __repr__ _setattr__ str Inherited from Category getDefault getEnumIndex getVal get Var insert Var setE numIndex set Val A 10 5 2 Instance Variables Description Inherited from Category categoryNode p 94 configDoc p 94 configXmlLocation p 94 name p 94 vars p 94 A 10 5 3 Class Variables KSMPS Value 2 type int 101 Class Directories Module tools config A 10 6 Class Directories _ builtin__ object 7 tools config Category 7 Directories Directories Category for Directories See documentation of superclass Category A 10 6 1 Methods init__ self configDoc configXmlLocation Standardconstructor Parameters configDoc config xml DOM type minidom Document configXmlLocation Path to config xml type string Overrides tools config fllWithDefault Vars self Fills classvar vars with its Config Va
88. pe gain maxafttch wel afttch AdsrLinMidi 5 MidiNoteln Midi input of frequency note numk instr 1 100 Ed autoplav Abbildung 6 3 Modulation mit einem H llkurvengenerator Die maximale Lautst rke unseres Instruments also den amp Parameter des AdsrLinMidi Moduls erhalten Sie ber die Anschlagst rke des MIDI Keyboards indem Sie den vel Ausgang von MidiNoteln mit dem amp Eingang von AdsrLinMidi verbinden und den velscale Parameter von MidiNoteln auf etwa 20000 setzen 6 1 4 Subtraktive Klangsynthese Um aus diesem obertonreichen Instrument einen subtraktiven Synthesizer also einen Klangerzeuger der unerw nschte Frequenzen aus einem Klang subtrahiert zu erzeugen ben tigen Sie noch ein Filter das ungew nschte Frequenzen herausfiltert Dazu verwen den Sie das Moog Tiefpass Filter mit dem die Frequenzen die berhalb der eingestellten Cutoff Frequenz liegen entfernt werden Damit der erzeugte Klang nicht zu statisch klingt wird die Cutoff Frequenz des Filters mit einer H llkurve moduliert In Abbildung 6 4 sehen Sie das fertige Instrument 6 2 VERWENDUNG DES SEQUENCERS ol Ele Modules Options a MidiNoteln 4 SawVco 1 MoogVcf 6 velscale fra frq out minafttch note shape maxafttch vel afttch AdsrLinMidi 7 amp env gt 100 autoplav Abbildung 6 4 Einfacher subtraktiver Synthesizer 6 1 5 Erweiterung unseres subtraktiven Synthesizers In den Beispi
89. r Objects Overrides tools config Category fillWithDefault Vars Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ _repr__ _setattr__ str Inherited from Category getDefault getEnumIndex get Val get Var insert Var setE numIndex set Val A 10 6 2 Instance Variables Description Inherited from Category categoryNode p 94 configDoc p 94 configXmlLocation p 94 name p 94 vars p 94 A 10 6 3 Class Variables 102 Module tools config Class List Var Name Description Name gt __ Description ___ EDITOR Value 4 type int LOGGING_DIR Value 2 type int MODULES Value 0 type int RECENTFILES Value 1 type int LOGGING_ON Value 3 type int A 10 7 Class ListVar _ builtin__ object 7 tools config Category List Var List Helper category for internal use only Serves as a meta category for list vars A 10 7 1 Methods config Var list 1 name parentNode None setting take the 1 in configVar varNodeName var Standardconstructor Parameters configVar ConfigVar of List Var type config Config Var list The list of initial values type list Name of the list var type string parentNode Parent Node for the ListVar to save type xml dom Node setting Setting for the List Var type config Setting varNodeName Name of the Node in which the List Var is stored var per default type stri
90. resents the structure of the modules folder type list Return Value Menu type wz Menu Return Title string for the CabelFrame Return Value Title string for the CabelFrame type string Overrides wx _windows TopLevel Window GetTitle onToggleBottomPane self event Toggle bottom pane in the splitter window Parameters event Event associated with this function type wz Event reloadRecentMenu self removeConnection self connection Remove connection from view workspace Parameters connection Connection to remove from view workspace type model connection Connection 140 Module view workspace Class CabelFrame removeDraggedCable self Remove dragged cable from workspace removeModule self module connections Removes module from workspace module to be removed from view workspace type model module Module connections list of model connection Connection to delete type list scroll WorkspaceOnBorder self pt If pt is on workspace border scrolls workspace Parameters pt Point to test if on worspace border type wr Point update self observable arg This method is called whenever the observed object is changed An application calls an observable object s notifyObservers method to have all the object s observers notified o he change Parameters arg An argument passed to the notifyObservers method type object Overrides model observer Observer update In
91. rsprache die mit dem Ziel entworfen wurde m glichst einfach und bersichtlich zu sein Da Cabel nicht nur in Python programmiert wurde sondern auch eine Python Shell integriert hat Abbildung 1 3 kann der fortgeschritten Anwender bestimmte Aufgaben mit Hilfe kleiner Programme automatisieren Wie man auf die Funktionalit t von Cabel ber Python zugreifen kann wird in Kapitel 8 auf S 62 genauer beschrieben Ele Modules Options Python Shell Messages I Python 2 4 2 2 Nov 20 2005 17 04 48 2 GCC 4 0 3 20051111 prerelease Debian 4 0 2 4 on linux2 3 Type help copyright credits or license for more information 4 gt gt gt w addXmlModule amps mixers Amp 5 lt model module Module object at 0x4056e4ec gt 6 gt gt gt print This is the Python shell 7 This is the Python shell B gt gt gt 100 lv autoplav Abbildung 1 3 Die in Cabel integrierte Python Shell 1 3 Neuigkeiten und Support Auf der offiziellen Cabel Homepage unter http cabel sourceforge net erhalten Sie Updates und wichtige Neuigkeiten zu Cabel Auf der Sourceforge Projekt Seite von Cabel unter http sourceforge net projects cabel haben Sie falls Sie Probleme mit Ih rer Cabel Installation haben sollten Zugriff auf Benutzerforen und die M glichkeit Fehler zu melden oder Vorschl ge fir die Weiterentwicklung von Cabel zu machen http www python org 10 KAPITEL 1 EINLEITUNG 1 4 Kommentare von Cabel Anwen
92. s the input number Otherwise it returns 1 Parameters pt Test if pf is on an input rtype int type wz Point Return Value Number of input on which pt is 0 indexed Otherwise 1 Returns True if this module contains given point Parameters pt Test if pt is included in module rtype bool type wx Point Return Value Is pt on module isSOnOutput self pt If point is on an output returns the output number Otherwise it returns 1 Parameters pt Test if pf is on an output rtype int type wr Point Return Value Number of output on which pt is 0 indexed Otherwise 1 ee scat Gd scaleFactor SSCS set Position self pt Set position of module Parameters pt New position of module type wr Point set RelativePosition self vecPt Move module in vector direction Parameters vecPt Direction vector for movement of module type we Point 132 Module view module Class Module zoom self Repaint module zoomed Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ __repr__ _setattr__ _str_ A 14 1 2 Properties Description scale A 14 1 3 Instance Variables config Config for some vars PA type tools config Config controller CabelController UT tape cmt Caco O height Height in pixels es module Corresponding model module Module ASA type model module Module numInputs Number of inputs es penny numOutpu
93. space CabelFrame 148 Anhang B Weiterf hrende Links zu Csound e Offzielle Csound Homepage http csounds com Csound Project bei Sourceforge net http csound sourceforge net Csound Benutzerhandbuch und Befehlsreferenz http www csounds com manual e Csound Mailing Listen http www csounds com list index html User Defined Opcode Database Basis fiir Cabel Module http www csounds com udo Csound Journal ein internetbasiertes Csound Magazin http www csounds com journal e Csound Tutorials Das 1 Kapitel des Csound Buchs http www csounds com chapter1 index html TOOTorials by Dr Richard Boulanger http www csounds com toots index html Mastering Csound by Dr Richard Boulanger http www csounds com mastering index html e Kompositionsumgebung blue http www csounds com stevenyi blue index html 149 Literaturverzeichnis Anw00 Florian Anwander Synthesizer PPV Presse Project Verlags GmbH 2000 Bou00 Dr Richard Boulanger editor The Csound Book The MIT Press 2000 Pil04 Mark Pilgrim Dive into Python APress 2004 http diveintopython org uTAJ97 Charles Dodge und Thomas A Jerse Computer Music Synthesis Composi tion and Performance Schirmer Thomson Learning second edition 1997 150
94. stallationsanleitung 2 2 1 Python 2 2 1 1 Python 2 4 Falls Sie eine aktuelle Linux Distribution verwenden sollte Python 2 4 bereits als fertiges Paket enthalten sein Ansonsten m ssen Sie die aktuelle Version unter N http www python org herunterladen und der Anleitung zur Installation folgen siehe Kapitel 1 3 S 9 14 KAPITEL 2 INSTALLATION 2 2 1 2 wxPython wxPython sollte ebenfalls in einer aktuellen Linux Distrubution enthal ten sein Ansonsten m ssen sie wxPython selber kompilieren Die ent sprechenden Quellpakete inklusive Installationsanleitung finden Sie unter http www wxpython org download php sources 2 2 2 Csound5 Unter http csound sourceforge net kann man ein aktuelles Csound5 herunterladen Hier werden sowohl fertig kompilierte Versionen als RPM Paket als auch der Csound5 Quellcode zum Selberkompilieren angeboten Dabei sei auf die in Csound5 enthaltene Installationsanleitung verwiesen 2 2 3 Cabel Jetzt fehlt nur noch Cabel Unter http sourceforge net projects cabel kann das aktuelle Cabel Release her untergeladen werden Dort findet man ein Tar Gz Archiv das alle Cabel Dateien enth lt Hinweis zur Aktualit t des Codes Cabel ist Open Source Software und wird weiterhin Ver nderungen unterliegen und wei terentwickelt werden Da nicht jede dieser Ver nderungen unmittelbar einen Release zur Folge haben wird kann es durchaus interessant sein sich anstatt des letzten Releases den aktuellen S
95. tand von Cabel aus dem ebenfalls auf Sourceforge gehosteten CVS zu holen F r n here Informationen hierzu sei auf die Rubrik C VS auf der Homepage von Cabel auf sourceforge net verwiesen http sourceforge net projects cabel 2 3 Starten von Cabel Nach der Installation kann Cabel gestartet werden ffnen sie dazu unter Windows die MS DOS Eingabeaufforderung wechseln in das Verzeichnis Ihrer Cabel Installation z B mit cd C Cabel und starten Sie Cabel mit dem Befehl python cabel py Standardm ig werden Dateien mit der Endung py mit Ihrem installierten Python Inter preter verkn pft soda es ausreicht Cabel mit einem Doppelklick auf cabel py zu starten Das Starten von Cabel unter Linux erfolgt analog mit dem Befehl python cabel py siehe Kapitel 1 3 S 9 Kapitel 3 Einstellungen im Options Men Um Cabel sinnvoll einsetzen zu k nnen m ssen Sie die Einstellungen von Cabel an Ihr System anpassen Dazu erkl ren wir im folgenden Kapitel die Eintr ge des Options Men s Abbildung 3 1 Ele Modules Show Bottom Pane Alt xX Refresh Module List Alt R Preferences Alt P Abbildung 3 1 Das Options Men 3 1 Ein und Ausblenden des unteren Fensters Das untere Fenster kann ber das Men Options gt Show Bottom Pane oder durch die Tastenkombination ALT X ein bzw ausgeblendet werden Es besteht aus den folgenden Reitern a Python Shell Das ist ein Python Interpreter ber den Zugriff auf die gesam
96. te API Cabels be steht Was einem das bringt und wie diese Schnittstelle anzusprechen ist erfahren Sie in Kapitel 8 ab Seite 62 b Messages In diesem Reiter werden Fehlermeldungen und sonstige Meldungen die Cabel auf die Standardausgabe schreibt ausgegeben 1 Application Programming Interface 15 16 KAPITEL 3 EINSTELLUNGEN IM OPTIONS MEN 3 2 Aktualisieren der Liste von Cabel Modulen Haben Sie Cabel XML Module ver ndert oder neu in das Modul Verzeichnis hinzugef gt und wollen diese in Cabel nutzen so mu die Cabel interne Liste an Modulen durch den Aufruf von Options Refresh Module List im Men oder durch die Tastenkombination ALT R aktualisiert werden 3 3 Cabel Konfigurator Der Cabel Konfigurationsdialog wird durch die Tastenkombination ALT P oder ber das Men Options Preferences ge ffnet 3 3 1 Csound Einstellungen Im Reiter Csound Abbildung 3 2 l t sich Csound f r die Verwendung mit Cabel kon figurieren Der Reiter ist unterteilt in die 3 Bl cke Instrument Header Score und Csound Prefe rences 1 Instrument Header e Sample Rate Samples die pro Sekunde und Kanal berechnet werden Dies sollte der internen Sample Rate Ihrer Soundkarte entsprechen Voreingestellter Wert 44100 Csound Handbuch http www csounds com manual html sr html e Control Rate Rate wieviele Kontroll Signale pro Sekunde verarbeitet werden Voreingestellter Wert 4410 Csound Handbuch http www csounds com
97. tegory get Default self var Gets the default of the Config_Var object in vars var Parameters index of Config_Var object in vars Get it from the instance constants of the implemented Category type int Return Value Default value of var type object etEnumIndex self var Gets the enum index of the enumVar vars var Parameters var index of Config_Var object in vars Get it from the instance constants of the implemented Category type int Raises IndexError If the ConfigVar vars var isn t a ConfigEnumVar get Val self var Gets the Value of the Config_Var object in vars var If it isn t already in the config xml IDOM it is added and config xml saved Parameters var index of Config_Var object in vars Get it from the static constants of the implemented Category type int Return Value Value of var type object get Var self var 95 Class Category Module tools config insertVar self index var Sets the ConfigVar var at the specified position in self vars and fills the still unset vars ith its index number Parameters index 0 based index of the var to add type int The ConfigVar to be added type config Config Var set EnumIndex self var index Sets the enum index of the enumVar vars var and saves it to the config xml Parameters var index of Config_Var object in vars Get it from the instance constants of the implemented Category type int index Index to whi
98. ternen Audio Signals mit einem Square Vco Kapitel 7 Schreiben eigener Module Wie bereits in der Einleitung siehe Kapitel 1 1 2 auf S 7 erw hnt wird jedes in Cabel verwendbare Modul in einer eigenen XML Datei definiert In folgendem Kapitel wird kurz auf den Aufbau dieser Cabel XML Module eingegangen 7 1 Kurze Einf hrung zu XML Eine XML Datei ist ein hierarchisch in Form einer Baumstruktur organisiertes Dokument Die Elemente des Dokumentenbaums werden als XML Nodes bezeichnet Ein XML Node besteht entweder aus einem Start Tag und einem zugeh rigen Ende Tag lt TagName attributName AttributWert gt TagWert lt TagName gt oder aus einem leeren Element Tag lt TagName attributName Attribut Wert gt Auf diese Weise kann man Dokumente einfach gliedern und deren Inhalt in eine Struktur bringen die sowohl f r den Menschen auch als auch f r einen Computer lesbar und verwertbar ist Der konkrete Aufbau von XML Dateien kann durch sogenannte XML Schema Dateien festgelegt werden Erf llt die XML Datei die im Schema festgelegte Syntax so spricht man von einem g ltigen oder auch validen XML Dokument eXtensible Markup Language ein Standard zur Erstellung von maschinen und menschenlesbaren Dokumenten engl Knoten 56 7 2 AUFBAU DER CABEL MODUL XML DATEIEN 57 Diese Schema Datei wird in der XML Datei nach der Definition des in der Datei verwen deten Encodings Zeile 1 in Listing 7 1 im Dokumentroot Knoten
99. th of the file to save EEC Te O name Name of the File without extension cw 89 Module model xmlReader A 9 Module model xmlReader A 9 1 Class ModuleDefinitionError exceptions Exception ModuleDefinitionError ModuleDefinitionError Exception if there is any syntax error in the module xml file A 9 1 1 Methods Inherited from Exception _init__ __getitem__ __str_ A 9 2 Class ModuleNotFoundError exceptions Exception ModuleNotFoundError ModuleNotFoundError Exception if the searched Module wasn t found A 9 2 1 Methods Inherited from Exception _init__ __getitem__ _str__ A 9 3 Class XmlModuleReader _ builtin__ object XmlModuleReader XmlModuleReader Reads XML modules 90 Module model xmlReader Class XmlModuleReader A 9 3 1 Methods Standard Constructor Overrides _builtin__ object __init_ get Module self name searches for the the xml file name xml in the searchpath directory and tries to instanciate a module object from it Parameters name Name of the Module we want to instanciate type str Return Value Returns new module object Raises ModuleNotFoundError If the Xml File name xml doesn t exist rtype model module Module ModuleDefinitionError If the Xml File isn t valid getModuleFromNode self moduleNode name getModules self tree True Return list of modules with their names Parameters tree Build tree of modules recursive list of tuples
100. the notifyObservers method type object Overrides model observer Observer update rite given text to the TextControl and to a logging file if logging is set on Parameters txt Text to be written type string Inherited from object __delattr_ _getattribute_ _hash__ __new__ _reduce__ _reduce_ex__ _setattr__ _str__ A 16 3 2 Instance Variables Description controller Cabel controller with link to the instances of model view workspace type view controller CabelController log The logging file to which the logging messages are written or Null type File loggingConfig The directory category of config xml in which the logging properties are saved type tools config Directories loggingOn State of logging type boolean 143 Class CabelScrolled Window Module view workspace A 16 4 Class CabelScrolled Window _ builtin__ object 7 wx _core Object 7 wx _core EvtHandler wx _core Window 7 wx _windows Panel wx _windows Scrolled Window CabelScrolled Window CabelScrolled Window Scrolled window to represent the Cabel GUI workspace for placing and connecting mo dules with double buffered painting A 16 4 1 Methods __init__ self parent id view Standard constuctor Parameters parent Parent of this scrolled window type wxz Object ID of this scrolled window type int Corresponding view type view workspace CabelFrame Get BackgroundColour self Overwrites wx Scrol
101. ts Number of outputs as po scale Scale factor of module Read only property considers a Po width Width in pixels S penny x X coordintate of module on workspace DEE y Y coordintate of module on workspace I bh S 133 Module view valueframe A 15 Module view valueframe A 15 1 Class CabelSlider _ builtin__ object CabelSlider This is a combination of wx Slider and wx TextCtrl in one horizontal Sizer A 15 1 1 Methods init__ self parent in Var model Standard constructor Parameters inVar Slider SpinCtrl controls this inVar type model var In Var Overrides _builtin__ object _init_ isable self enable self etSizer self Return sizer for CabelSizer El Tu zn Ta ATO ATO E Ole S S Jala SJE IE 5 z A 9 isla lzi 23 12 z Sig S e EIS 3 3 a aj D gla jlo 2 14 3 23 an Y Hr sl S Q IS 2 m lt o ills ol ela y ji ole 5B 5 5 a er amp u oa 5 n Y 2 Eli e lal E z ct ow o Ial S Je IR 5 5 2 3 e o e 4 2 A A a7 lt S St Si e gt E LJ AJN 4 8 2 a el da ela BIS a at A el Sl a o O I 2 ct Q 38 EE da 8 at S els m da a O As E w a Module view valueframe Class Cabel ValueFrame set ToValue self value Sets slider and text ctrl to value Parameters value New value for slider and text ctrl type float Inherited from object __delattr_ _getattribute_ _has
102. uenzmodulation Y s lt zn pubs A 6 4 Verarbeitung externer Audio Signale 7 Schreiben eigener Module 7 1 Kurze Einf hrung zu XML os es RA 7 2 Aufbau der Cabel Modul XML Dateien 7 2 1 Der Modul Knoten aoaaa a 7 2 2 Eingabe Variablen 2 2 55 2208589 ede A GOH 1 2 8 Ausgabe Variable 2274 54 2K Ab 222 dee EO ee EG 7 2 4 Globale Variablen nn 128 Opeode Knoten scce Li en ehe are 7 3 Einbinden der XML Modul Dateien in Cabel 7 3 1 Skinning von Cabel Modulen 8 Automatisierung von Cabel 8 1 Generierung eines Instruments 2 2 Comm nn 8 2 Vereinfachung sich wiederholender Arbeitsschritte 8 3 Einbindung externer Python Skripte 2 2 2 a rennen A Cabel API A 1 Module model connection 2 2 2 22mm nme ALI Class Connection ua Gs asa sh Rs ra ae A 2 Module model csound 2 2 cm m nn 42 43 43 43 44 44 44 45 45 45 46 46 47 47 47 49 49 50 ol ol 93 54 56 56 57 58 59 59 60 60 60 61 62 62 63 63 INHALTSVERZEICHNIS A 2 1 Class CsoundGenerator 67 A 3 Module model instrument 69 As Class Instrument e oie ee bw Gos Bie ok Etat 69 A 4 Module model module 0 0 0 00 0000000000008 4 70 AAA Class Module 24 222464 82454 wir cad Se cad A 70 A 5 Module model observer 73 Adel Class Observable 2 sus 8 s
103. uls und den out Ausgang des Amp Moduls mit dem in Eingang von PemMonoOut Durch Doppelklicken auf das SawVco Modul ffnen Sie dessen Einstellungen Setzen Sie die Frequenz auf einen passenden Wert z B 200 Hz Im Amp Modul setzen Sie die Verst rkung also den gain Parameter auf 25000 Ele Modules Options SawVco 1 Amp 2 PcmMonoOut 3 frq out in out in gain shape PcmMonooOut Output mono signal t instr 1 100 EZ autoplav gt Abbildung 6 1 Das erste S gezahn Oszillator Instrument Bevor Sie das Instrument starten berpr fen Sie noch die Einstellungen im Men Options Preferences Achten Sie darauf da Channels auf 1 gesetzt ist da Sie nur ein Mono Signal an die Soundkarte schicken Falls Sie wollen da Ihr Instrument au tomatisch spielt setzen Sie Score auf i1 0 6000 was so viel wie spiele Instrument 1 von Anfang an 6000 Sekunden lange bedeutet Alternativ k nnen Sie Score auch auf f0 6000 setzen was Csound im Hintergrund 6000 Sekunden laufen l t ohne ein Instrument zu starten Um ihr Instrument zu triggern reicht ein mit einem MIDI Keyboard an Csound gesendeter MIDI Note On Befehl also ein einfacher Tastendruck siehe Kapitel 3 3 1 auf S 17 aus Mit welchen Csound Parametern Sie Ihre MIDI Ger te mit Csound verbinden k nnen erfahren Sie im Csound Benutzerhandbuch Verzerrung auf Grund zu hoher Lautst rke http www csounds com manual 6 1 EINFACHER SUBTRAKTI
104. underbaren Spra che auf m glichst einfache und anschauliche Art und Weise kennenzulernen Den an spruchsvolleren Anwendern soll Cabel als Werkzeug zum schnellen Testen von Ideen f r neue Instrumente und Spielen mit deren Einstellungen anhand einer graphischen Benut zeroberfl che dienen 1 1 2 Erweiterbarkeit Dadurch da die in Cabel verwendeten Module in XML Dateien definiert sind in die Csound Befehle eingebettet werden ist die Erweiterbarkeit von Cabel nur durch die M glichkeiten von Csound beschr nkt und die sind wie in Abschnitt 1 2 1 kurz beschrie ben fast grenzenlos 8 KAPITEL 1 EINLEITUNG N here Informationen zur Erweiterung von Cabel durch eigene Module entnehmen Sie bitte Kapitel 7 auf S 56 1 2 Arbeitsumgebung von Cabel 1 2 1 Was ist Csound5 Eine kurze Einf hrung Csound ist ein m chtiges und vielseitiges Software Synthesizer Programm mit dem sich sowohl Instrumente als auch Effekte programmieren lassen Es generiert Musik indem textbasierte sogenannte Orchester Dateien orc in Csound Maschinencode bersetzt werden und an diesen Maschinencode einzelne Noten Events geschickt werden Der Quelltext in Orchester Dateien beschreibt Csound Instrumente und ist im wesentli chen in 2 Bl cke dem Header und dem Instrument Block unterteilt Im Header werden die Sample Rate und Control Rate in der die nachfolgenden Instrumen te verarbeitet werden definiert Au erdem wird im Header die Anzahl der Ausga
105. urch ein MIDI Ger t triggern und steuern so erledigt das die Score Zeile fO 6000 Dieses f statement l t Csound im Hintergrund laufen ohne ein Cabel Instrument zu starten Ein Cabel Instrument kann so durch ein MIDI Note On Signal mit der Kanal Nummer die der Instrumentnummer entspricht getriggert werden Wie in Kapitel 1 2 1 S 8 erw hnt kann als Noten Eingabe f r Csound und damit auch f r Cabel auch eine Score Datei verwendet werden Weitergehende Informationen ber Csound Scores finden Sie im Csound Benutzerhandbuch 3 Csound Preferences e Csound Path Pfadangabe des Csound Compilers csound exe Dieser ist normalerweise im Un terverzeichnis bin Ihrer Csound Installation zu finden e Csound Parameters Mit den Csound Parametern kann man u a einstellen woher Csound welche Ein gaben wie z B MIDI oder Echtzeit Audio nimmt und wie die daraus generierten Sounds ausgegeben werden Windows Beispiele F r MIDI Eingabe und Echtzeit Audio Ausgabe ber den Audio Treiber MME d b123 B1536 W rtmidi mme MO rtaudio mme o daci F r Echteit Audio Input aus dem MME Ger t 0 den Parametern i adcO hinzuf gen Linux Beispiele F r Echtzeit Audio Ausgabe ber den ALSA Treiber d W o dac plughw 0 rtaudio alsa b256 B2048 MO mO SEin f statement definiert eine Funktionstabelle die eine Folge von Werten repr sentiert Thttp www csounds com manual 3 3 CABEL KONFIGURATOR 19 F r
106. verwendeten Bibliotheken und einen Python Interpreter der das Programm ausf hrt Die graphische Benutzeroberfl che f r Cabel wurde mit der wxWidgets Implementierung f r Python entwickelt wxWidgets ist ein GUI Toolkit eine Sammlung von Bausteinen zur Generierung von Benutzeroberfl chen Um Cabel ausf hren zu k nnen mu also folgende Software installiert sein e Die Programmiersprache Python http www python org e Das GUI Toolkit wxPython http www wxpython org und e Csound5 http www csounds com Auf die Installation dieser f r ein funktionierendes Cabel essentiellen Programme wird im Folgenden genauer eingegangen 2 1 Windows Installationsanleitung 2 1 1 Python 2 1 1 1 Python 2 4 Unter http www python org k nnen Sie das Installationsprogramm f r Python 2 4 oder h her herunterladen Starten Sie den Installer und folgen Sie den Anweisungen Hinweis zur ben tigten Version von Python Graphical User Interface 11 DR 12 KAPITEL 2 INSTALLATION Um Cabel mit lteren Versionen von Python zu verwenden mu die Installation von Csound5 angepa t werden da aktuelle Releases von Csound5 f r Windows mit Python 2 4 bersetzt wurden 2 1 1 2 Python f r Windows Extensions Um Cabel auch in Echtzeit verwenden zu k nnen wird Csound5 aus Cabel heraus auto matisch in einem extra Prozess gestartet Damit dies in Windows reibungslos funktioniert wird eine Erweiterung der Standard Python Bibliotheken
107. ype object Overrides model observer Observer update Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _reduce_ex__ __setattr__ _str__ 136 Module view workspace A 16 Module view workspace A 16 1 Class CabelBottomWindow _ builtin__ object 7 wx _core Object 7 wx _core EvtHandler E wx _core Window 7 wx _core Control 7 wx _controls BookCtrlBase T wx _controls Notebook CabelBottomWindow Cabel s bootom area A 16 1 1 Methods __init__ self parent size Standardconstructor Parameters parent Parent frame type view workspace Cabel Splitter Window size The initial size of the bottom window pane type wx Size onPageChanged self event Save actual Page Inherited from object __delattr_ _getattribute_ _hash__ _new__ _reduce__ _ reduce_ex__ _setattr_ _str__ 137 Class CabelFrame Module view workspace A 16 2 Class CabelFrame builtin__ object model observer Observer _ builtin__ object 7 wx _core Object 7 wx _core EvtHandler wx _core Window 7 wx _windows TopLevel Window wx _windows Frame CabelFrame CabelFrame A frame showing the contents of a single Cabel session A 16 2 1 Methods __init__ self model Standard constructor Parameters model Corresponding model for this view type model workspace Workspace addConnection self connection Add connection to view workspace Parameters connection Model connecti
Download Pdf Manuals
Related Search
Related Contents
Installations- und Bedienungsanleitung Gas 16ページから17ページ [1.09MB pdfファイル] KRAM 67785 car kit CH260, CH270, CH395, CH440 Manuale d`uso Mi456 - Milwaukee All. 12 - Provincia di Torino Copyright © All rights reserved.
Failed to retrieve file