Domanda

Un paio di settimane fa, io e il mio insegnante di piano ci siamo fatti una scossa di idee riguardo al software musicale meta-compositivo. L'idea era questa:

Esiste un sistema che accetta input MIDI da un gruppo di strumenti e invia output agli altoparlanti e alle luci. Il software in esecuzione su questo sistema analizza i dati midi che sta ricevendo e determina quali suoni usare, in base ai trigger impostati dal compositore (quando suono un accordo F7 3 volte in 2 secondi, passa dal suono del clavicembalo al suono del pianoforte ), pedali o analisi della musica in tempo reale. Controllerebbe le luci in base all'esecuzione e ai suoni degli strumenti in modo simile - il musicista dovrebbe solo specificare vagamente ciò che voleva - e l'analisi in tempo reale della loro esecuzione farebbe il resto. Al volo anche la musica generata proceduralmente potrebbe suonare insieme al musicista. In sostanza, il software suonerebbe insieme all'esecutore, guidando l'uno con l'altro. Immagino che ci vorrebbe un po 'di pratica per abituarsi a un tale sistema, ma che potrebbe avere risultati abbastanza incredibili.

Sono un grande fan del jazz improvvisato. Una caratteristica dell'improvvisazione che manca di altre forme d'arte è la sua temporalità. Un dipinto può essere apprezzato 10 o 1000 anni dopo che è stato dipinto, ma la musica (specialmente la musica estemporanea) riguarda la performance in quanto è la creazione. Penso che il software che ho descritto aggiungerebbe molto alla performance, così come con esso, poiché la riproduzione dello stesso identico pezzo comporterebbe ogni volta uno spettacolo completamente diverso.

Quindi, ora per le domande.

Sono pazzo?

Esiste ancora un software per fare tutto questo? Ho fatto qualche ricerca e non ho trovato nulla. La chiave di questo sistema è che è in esecuzione durante l'esecuzione.

Se dovessi scrivere qualcosa del genere, un linguaggio di script come Python sarebbe abbastanza veloce da fare i calcoli di cui ho bisogno? Presumibilmente sarebbe in esecuzione su un sistema abbastanza veloce e potrebbe sfruttare i 2 ^ n processori core che Intel continua a rilasciare.

Qualcuno di voi può condividere la tua esperienza e i tuoi consigli sull'interfaccia con strumenti e luci musicali e simili?

Hai idee o suggerimenti? Critiche fredde e aspre?

Grazie per il tuo tempo a leggere questo e per tutti i consigli! (E mi dispiace per la battuta nei tag, non ho potuto resistere.)

È stato utile?

Soluzione

Le persone hanno usato Max MSP per fare questo tipo di cose con Midi e creare accompagnamenti video o solo accompagnamento Midi. È un'app completamente specifica per il dominio, che probabilmente è stata ispirata da chiacchiere o qualcosa del genere, che quasi nessun vero programmatore potrebbe amare, ma i musicisti-programmatori lo fanno.

Nonostante il testo sul sito a cui ho appena collegato e il fatto che "tutti" utilizzano la versione commerciale, non è sempre stato un prodotto commerciale. Ircam alla fine ha rilasciato il proprio lignaggio . Si chiama jMax . PureData , menzionato in un altro post, ecco un'altra riscrittura di quel lignaggio.

C'è anche CSound; che non era pensato per essere in tempo reale, ma è probabilmente in grado di essere abbastanza in tempo reale ora che hai un computer decente rispetto a dove ha iniziato CSound.

Alcune persone hanno anche hackerato le estensioni di Macromedia Director per consentire di fare cose midi in Lingo ... Questo è molto obsoleto, e quindi alcuni di loro sono passati a più moderni ambienti Adobe.

Altri suggerimenti

Guarda PureData . Può fare analisi MIDI complete e la gente lo usa per le prestazioni.

In effetti, ecco un video che passa davanti a uno schermo puredata. Mostra qualcuno che interagisce con uno strumento piuttosto complesso usando PD.

Inoltre, guarda CSounds .

Ho usato PyAudio abbastanza ampiamente per gestire input audio non elaborati e l'ho trovato molto poco sincero, agendo molto più come un wrapper molto su codice C. Tuttavia, se hai a che fare con midi, piuttosto che forme d'onda grezze, i tuoi compiti sono un po 'più semplici e python dovrebbe essere abbastanza veloce, a meno che non suoni a 10000 battiti al minuto :)

Alcuni dei problemi: rilevazione della simultaneità, analisi armonica (formale - cioè struttura degli accordi).

Questo è anche un problema 80/20 che se si limitano le progressioni di accordi consentite, allora diventa un po 'più semplice. Dopotutto, cosa significa "giocare insieme a" vuoi dire, vero?

(Inoltre, alle conf. di musica elettronica sono stato anche io, ci sono molte persone che fanno vari esperimenti di accompagnamento in tempo reale basati sul suono e sul movimento in ingresso). Buona fortuna!

Puoi anche guardare ChucK e SuperCollider , i due più popolari linguaggi di programmazione musicale" reale "in tempo reale.

Inoltre, potresti essere sorpreso di quanto puoi realizzare con gli Ableton Live .

(ed è CSound. No 's' alla fine)

vedi anche:

Non ho idea se il secondo sia effettivamente reale o valga la pena guardarlo. Keykit, tuttavia, è.

Potresti contattare Gary Lee Nelson nel dipartimento TIMARA a Oberlin. 20 anni fa ho realizzato un progetto che ha generato automaticamente la sezione ritmica per il blues a 12 battute e lo ricordo che descriveva uno strumento di cui era a conoscenza che ha fatto essenzialmente quello che stai descrivendo.

Potresti essere interessato a GenJam

La risposta alla tua domanda è no: non sei pazzo. Esistono sistemi simili, ma la tua descrizione è carina vago per cominciare, quindi non è una gran cosa da giudicare.

Ti suggerisco di iniziare a scrivere un prototipo e vedere come funziona. Qualcosa di estremamente piccolo e semplice. I sistemi esistenti sono dannati.

Sto usando c ++ su api win32 (no mfc). Ho iniziato a scrivere il mio sequencer su Amiga500. Non fa luci, ma c'è molto da fare solo nella musica.

Buona fortuna a te. È un progetto ESTREMAMENTE divertente. Direi -non- modellare il tuo progetto su come funzionano altri progetti. Perché, se me lo chiedi, non funzionano così bene;) E il divertimento è riuscire a fare qualcosa di diverso.

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