Pure Data

Dieses Thema im Forum "Web & Algorhythmics" wurde erstellt von PySeq, 29. Dezember 2015.

  1. PySeq

    PySeq ......

    Hi,

    offenbar gibt es hier einige, die sich mit Pure Data auskennen. Ich bisher leider nicht. Dabei würde ich gern Musik eher programmieren.

    Ich kenne inzwischen ein paar Programmiersprachen. Da fängt man immer mit "Hallo Welt" an, also einem einfachem Programm, das "Hallo Welt" auf den Bildschirm schreibt.
    In C wäre das z.B. so:
    Code:
    #include <stdio.h>
    
    int main() {
        puts("Hallo Welt");
    }
    Das speichert man mit einem Editor als "hallo.c" und führt dann "gcc hallo.c" aus. Das Ergebnis ist eine Datei "a.out", die man mit "./a.out" ausführen kann. Dann steht da eben "Hallo Welt".

    Wie wäre so ein "Hallo Welt"-Programm in Pure Data? Wie müßte also Pure Data-Code aussehen oder was müßte ich sonst machen, damit ich überhaupt erstmal einen einfachen, hörbaren Ton herausbekomme?
     
  2. marco93

    marco93 ||

  3. PySeq

    PySeq ......

    Hmm, vielleicht eher dieses, da kommt wenigstens schonmal ein Ton (über ein Plugin) 'raus:

    Aber mir gefällt die grafische Oberfläche (auf Linux ist das in Tk) leider gar nicht. Ich will Code mit vim schreiben, nicht blöde Tk-Canvas-Objekte hin- und herziehen. :twisted: Wahrscheinlich war es das, was mich schon früher gestört hat.
     
  4. Drumfix

    Drumfix ....

    Man kann natürlich auch eigene (external) PD Objekte in C programmieren, und die dann wie alle internen PD Objekte auf der graphischen Oberfläche benutzen. Die Anleitung dazu, incl. "Hello World" gibts hier:

    http://iem.at/pd/externals-HOWTO/
     
  5. khz

    khz D@AU ~/Opportunist/Orwell # ./.cris/pr.run

  6. PySeq

    PySeq ......

    Ja, ok, aber man kann ein Programm natürlich erst erweitern, wenn man es überhaupt erstmal verstanden hat. ;-) Ich hab' oben ein (winziges) Beispiel in C gepostet, das bekomme ich hin, aber eigentlich ist mir C zu schwer (da zu sehr low-level). Sehr viel besser komme ich mit Perl und Python klar, da bekomme ich auch um ein Vielfaches schneller Resultate.
    Offenbar gibt es das Python-Modul pyata, mit dem man die Pd-Objekte in Python programmieren kann, anstatt sie zu zeichnen. Vielleicht versuche ich das mal.

    "Benoît and the Mandelbrots": Live-Coding - Cool. Konnte mir das bisher nie so richtig vorstellen. Ich hatte mal das hier probiert

    http://www.perl.com/pub/2004/08/31/livecode.html

    aber damit keine nennenswerten Ergebnisse bekommen.

    Zusatzfrage zu Pd: Angenommen, man hat da also ein paar Pd-Objekte als verbundene Kästchen auf dem Bildschirm. Wie wird daraus denn dann ein musikalischer, zeitlicher Ablauf wie in einem Musikstück?
     
  7. Einen simplen Sequenzer kannst du z.B. mit dem Objekt "array" erstellen.
    Das Array ist ein Speicherbereich, in den Du für jeden X-Wert (das sind die Steps) einen Y-Wert (das ist z.B. die jeweilige Note) hineinschreibst.

    Ich hab mal einen Screenshot angehängt. Das Schreiben machst Du mit "tabwrite", das Auslesen mit "tabread", und das Tempo bestimmt der Eingangswert des "metro" Objekts.



    Die drei Objekte unterhalb von "metro" bilden einen Zähler, der immer bis zur Länge der Sequenz hochzählt. Der Schieberegler links erzeugt durch das "random" Objekt eine zufällige Sequenz. Wenn man damit z.B. nur 8 von 16 Steps durchfährt, bleibt der Rest der Sequenz unverändert :)

    Und "Tonerzeuger" ist ein sehr simpler Synth mit zwei Oszis, Dauerton und langsamem LFO fürs Filter.
     

    Anhänge:

  8. mnb

    mnb -

    dann waere wohl supercollider oder csound die bessere wahl. ist auch die frage, ob man lieber eine imperative sprache mag wie es cs und sc sind, oder eher eine funktionale
    (und auch noch graphische) wie pd.

    statt "helle world" empfehle ich ansonsten eher

    [bang(
    |
    [until]


    ;-) (wichtige dinge bitte vorher speichern!)
     
  9. mark

    mark ..

    mach gcc -o Dateiname...