2009-06-19 7 views
6

Ich lerne Python, weil es mich als Mathematiker anspricht, aber auch viele nützliche Bibliotheken für wissenschaftliche Berechnungen, Bildverarbeitung, Webapps usw usw.Synthese der allgemeinen Programmiersprache (Python) mit passender Sprache (PureData/MaxMSP/ChucK)

Es ist frustrierend für mich, dass für bestimmte meiner Interessen (elektronische Musik oder Installationskunst) sehr spezifische Programmiersprachen, die für diese Zwecke besser geeignet erscheinen, wie Max/MSP, PureData und ChucK - Alles ziemlich faszinierend.

Meine Frage ist, wie sollte man diese verschiedenen Sprachen angehen? Soll ich einfach Python lernen und die anderen mit Plugins und Python-Interpretern verwalten? Gibt es gute Werkzeuge, um die Sprachen zu integrieren, oder ist es richtig, sie einfach zu lernen?

+0

Dies ist eine interessante Frage. Ich würde gerne sehen, was andere darüber zu sagen haben. – BobbyShaftoe

Antwort

8

Ich würde sagen, lernen Sie alle. Obwohl es stimmt, dass viele Sprachen viele Dinge tun können, sind spezialisierte Sprachen normalerweise expressiver und einfacher für eine bestimmte Aufgabe zu verwenden. Fall-in-Punkt ist, während die meisten Sprachen Shell-Interaktion und Prozesssteuerung erlauben sehr wenige sind so gut geeignet für die Aufgabe als Bash-Skripte.

Plugins und Bibliotheken können die Lücke zwischen allgemeinen und spezialisierten Sprachen überbrücken, aber nach meiner Erfahrung ist dies nicht immer ohne Nachteile - sei es Geschwindigkeit, Stabilität oder Komplexität. Es ist nicht unüblich, zusätzliche Bibliotheken zu kompilieren oder Patches anzuwenden oder nicht vertrauenswürdige und schlecht unterstützte Module zu verwenden. Es ist auch nicht ungewöhnlich, dass die resultierende Schnittstelle immer noch schwieriger zu verwenden ist als die ursprüngliche Sprache.

Ich kenne gut 15 Sprachen und einige davon sehr gut. Ich verwende meine bevorzugten Sprachen nicht, wenn eine andere besser geeignet ist.

1

Es ist durchaus möglich, gute Schnittstellen von Python zu solchen spezialisierten Sprachen zu erstellen: Ein Beispiel dafür ist RPy, mit dem man R (für Statistiken) von Python aus steuern kann (für alle Arten von Allzweck-Dingen).

Natürlich muss man in beiden Sprachen kompetent sein - und solche Brücken werden leider nicht für jedes gegebene Paar einer allgemeinen und einer spezialisierten Sprache existieren. "Lernen Sie alle von ihnen", wenn Sie alle verwenden wollen, bleibt die königliche Straße!

1

Python wäre eine großartige Sprache zu lernen, da es mit vielen anderen Sprachen gut funktioniert. Es macht eine großartige allgemeine Sprache sowie eine "Leim" -Sprache. Verbringe Zeit damit, die Sprachen zu lernen, für die du dich interessierst, und halte Python-Wissen für seine Flexibilität und Kraft bereit. Ich denke nicht, dass ich empfehlen würde, sie alle zu lernen, wenn Sie nicht wirklich Zeit haben.

Vielleicht möchten Sie wissen, dass PureData eine python extension hat.

4

Dieser Thread ist ein wenig alt, aber ich wollte darauf hinweisen, dass die Mehrheit der reifen Audio-Entwicklungsumgebungen, z. supercollider/max-msp/pure Daten können über Open Sound Control gesteuert werden. Sie können eine bessere Beschreibung von OSC googlen, aber es genügt zu sagen, dass es Ihnen erlaubt, Steuerdaten an Synths zu senden, die in diesen Umgebungen gebaut sind, ähnlich wie MIDI funktioniert, aber viel umfangreicher. Dies löst nicht das Problem, tatsächlich Synths in Python zu bauen, aber es erlaubt Ihnen, diese anderen Umgebungen zu "fahren", ohne die Besonderheiten der Sprache kennen zu müssen.

+0

Dies ist entscheidend. Trotzdem können Sie mit Python nur eine der Fachsprachen "steuern". Der Großteil der Arbeit (Erstellen von Einheitengeneratoren, Definieren des Signalflusses) wird in der Sprache ausgeführt. Ich empfehle SuperCollider. – terrace

+0

Siehe zum Beispiel meine Antwort zu [Kontrolle ChucK von OSC] (http://Stackoverflow.com/a/14403066/821287) und auch diese Reihe von [PyOSC Stubs für SuperCollider] (http://pypi.python.org /pypi/SC/0.2). – Curtis