Pregunta

Estoy pensando en audio y MIDI de la aplicación en Max (o de Max for Live, la verdad), pero estoy totalmente cómodo en Java, por lo que algo como esto también parece atractiva.¿Alguien tiene alguna experiencia con Max?Es verdaderamente dirigido a personas que no código, o es la goofy/aspecto amigable interfaz de usuario mucho más eficiente que escribir directamente el código, por ejemplo, en Java?También, alguien escribió un VST plugin de Java, y puede compartir sus experiencias allí?

¿Fue útil?

Solución

Max es un lenguaje de flujo de datos.Estoy más familiarizado con enfermedad de parkinson, que es del mismo autor.

La ventaja de flujo de datos como un estilo de programación es que la mayoría de las dependencias de datos son explícitas - que, literalmente, puede seguir las conexiones entre las subrutinas visualmente, y que son por lo general aparece como una línea en la pantalla entre ellos.La dificultad es que el orden de las operaciones es menos explícita, porque es de dos dimensiones en el diseño, en lugar de una dimensión como código textual sería.

Hago la mayoría de mis material de audio en supercollider hoy en día, pero para un boceto rápido de un audio idea, y la construcción de un trabajo rudo modelo, el pd de las grandes obras.

La principal dificultad de la programación en visual lenguaje de flujo de datos es comprender el orden de las operaciones.Es posible crear múltiples conexiones desde una toma de corriente, pero es necesario que usted para crear un explícito [trigger] objeto de que el control de esas conexiones se ejecuta primero (una línea que viene de una toma de corriente es conceptualmente la misma como una subrutina llamada).También hay una dificultad con programadores experimentados con acostumbrando a anónimo parámetros - los parches de líneas no tienen nombres, sólo que tienen la toma de corriente que proviene y la entrada están conectados a identificarlos.

Otro consejo es utilizar la encapsulación - en un lenguaje textual tendría una biblioteca o un archivo de clase, en Max o DP puede cargar un externo archivo de revisión por su nombre - por lo que se crea un pequeño parche con algunas tomas y salidas, y el uso que de su otro parche en varios lugares, en lugar de copiar y pegar (igual que las funciones de llamada en lugar de copiar y pegar bloques de código).

[enviar] y [recibir] son globalmente configuración / obtención de datos, y tener todos los mismos problemas que vienen con globals - una solución común en que se necesita es anteponer un identificador único específico para el actual subpatch, el $0 token evalúa en el IDENTIFICADOR único de la actual subpatch en los nombres de objeto / parámetros, y se utiliza para este propósito.Esto simula un ámbito de variable.

La depuración en el flujo de datos es excelente, porque es muy fácil de separar un conjunto de elementos de su entorno parche y ejecutar de forma independiente, y se activa la traza de una parte de la corriente es tan fácil como conectar un cuadro número a una toma de corriente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top