Domanda

Sto considerando l'audio e l'applicazione MIDI in Max (o Max for Live, in realtà), ma sono totalmente a mio agio in Java, quindi qualcosa di simile sembra anche interessante . Qualcuno ha qualche esperienza con Max? E 'davvero orientata a persone che non il codice, o è il goofy / amichevole cercando UI molto più efficiente di scrittura del codice dritto, per esempio, Java? Inoltre, qualcuno ha scritto un plug-in VST in Java, e possono condividere esperienze lì?

È stato utile?

Soluzione

Max è un linguaggio a flusso di dati. Sono più familiarità con PD, che è dello stesso autore.

Il vantaggio di flusso di dati come uno stile di programmazione è che la maggior parte dei data dipendenze sono espliciti - si può letteralmente seguire le connessioni tra subroutine visivamente, e di solito sono visualizzati come una linea sullo schermo tra di loro. La difficoltà è che l'ordine delle operazioni è meno esplicito, perché è bidimensionale nel layout, piuttosto che unidimensionale come codice testuale sarebbe.

che faccio la maggior parte delle mie cose audio SuperCollider al giorno d'oggi, ma per un rapido schizzo di un'idea audio, e la costruzione di un modello di massima di lavoro, pd funziona alla grande.

La principale difficoltà di programmazione in un linguaggio a flusso di dati visivo è comprendere ordine delle operazioni. E 'possibile creare più connessioni da una presa di corrente, ma ti conviene creare un esplicito [TRIGGER] oggetto per controllare quali di questi collegamenti viene eseguito prima (una linea proveniente da una presa di corrente è concettualmente la stessa di una chiamata di subroutine). Inoltre v'è una difficoltà con i programmatori esperti con abituarsi ai parametri anonime -. Le linee di patching non hanno nomi, hanno solo l'uscita sono provenienti da e l'ingresso sono collegati a identificarli

Un altro suggerimento è quello di utilizzare l'incapsulamento - in un linguaggio testuale si avrebbe una biblioteca o di un file di classe, in Max o PD è possibile caricare un file di patch esterna per nome - in modo da creare una piccola patch con alcuni punti vendita e insenature, e l'uso che dal vostro altro cerotto in più luoghi, piuttosto che copiare e incollare (proprio come si farebbe chiamare le funzioni piuttosto che copiare e incollare i blocchi di codice).

[SEND] e [ricevere] sono per l'impostazione a livello globale / recupero dei dati, e hanno tutti gli stessi problemi che vengono con globali - una soluzione comune, quando sono necessari è quello di anteporre un identificatore univoco specifico per il subpatch corrente, il $ 0 Token restituisce l'ID univoco del subpatch corrente in nomi degli oggetti / parametri, e viene utilizzato per questo scopo. Questo simula una variabile di ambito.

debug nel flusso di dati è eccellente, perché è molto facile staccare un insieme di oggetti da loro cerotto circostante e farli funzionare in modo indipendente, e girando di traccia per una parte del flusso è facile come attaccare una scatola numero ad una presa .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top