2008-11-06 7 views
9

Tengo tanto sintetizadores de software Reason Fruityloops como Propellerheads en mi PC con Windows.scripting fruityloops o propellerheads reason de VB o Python?

¿Alguna manera que pueda obtener y guíarlas desde Visual Basic o Python? ¿O al menos enviar mensajes MIDI a los sintetizadores desde el código?

Actualización: los intentos de utilizar algo así como un "midi-mapper" (gracias por el enlace MusiGenesis) no parecen funcionar. No creo que Reason o FL Studio actúen como sintetizadores GM Midi estándar.

Actualización 2: Si está interesado en esta pregunta, check out this too.

Respuesta

2

Creo que tanto FL Studio como Reason pueden configurarse como el dispositivo de reproducción MIDI predeterminado. Para enviar mensajes MIDI a VB.NET, deberá invocar las llamadas a la API midiOutOpen, midiOutShortMsg y midiOutClose. Aquí hay un enlace a ejemplos de código:

http://www.answers.com/topic/midioutopen

Son para VB6, pero debe ser fácil de traducir a VB.NET.

Sé que FL Studio puede ser "controlado" desde un plugin creado para FL (o un plugin VSTx), pero creo que estos siempre están escritos en C o C++.

Editar: Acabo de enterarme de que Windows Vista eliminó el Mapper MIDI (lo que habría hecho que la configuración de FL o Reason como el dispositivo MIDI predeterminado sea simple). Asombroso. Aquí hay un enlace que encontré con una solución alternativa:

http://akkordwechsel.de/15-windows-vista-und-der-midi-mapper/

solo lo probé (es sólo un archivo .CPL * que hace doble clic para correr) y parece funcionar (aunque el GM Synth es la única opción disponible en mi computadora portátil, así que no estoy seguro de si seleccionará FL o Reason como opciones).

+0

alguna idea de cómo configurar esto. Estoy usando FL Studio 7 y parece que no puede encontrar ninguna opción de hacerlo recibir Midi de cualquiera de mis programas VB o Python que parecen ir directamente al sintetizador de Windows GM. – interstar

+0

Supongo que estás usando Vista, que acabo de enterar que ya no tiene el mapeador MIDI. Increíble, otra razón oculta por la cual Vista es tan horrible. Ver mi edición para un enlace para tratar el problema. – MusiGenesis

+0

sí ... sin MidiMapper chupa – interstar

2

Nota: Esta respuesta no responde exactamente la pregunta que hiciste pero podría alcanzar el resultado que desea :)

Puede autor de un plug-in VST en Java utilizando jVSTWrapper (http://jvstwrapper.sourceforge.net/). Si realmente quería usar Python, podría usar Jython para interactuar con Java y hacerlo de esa manera. Alternativamente, puede escribir el plugin en Java u otro lenguaje de scripts para la JVM, como Groovy.

0

Cuando se trata de Reason, puede hacer mucho con eso debido a su arquitectura cerrada: puede usar complementos VST (o cualquier otro tipo como los de DirectX); su única opción es usar MIDI.

En cuanto a Fruity Loops, podría escribir un plugin VST que pueda tomar una entrada de un lenguaje de scripting (VB, Python o lo que sea) pero para escribir tal cosa tendría que usar Delphi o C++.

O bien, puede ver MAX made by Cycling74 - es algo así como un IDE para música ;-) - y estoy bastante seguro de que puede usar Python con él.

0

Puede escribir un host Rewire. Sin embargo, deberá obtener una licencia (la licencia es gratuita, pero su aplicación debe ser de propiedad exclusiva, por lo tanto, no debe ser de código abierto).

Alternativamente, podría interactuar a través de mensajes MIDI.

Finalmente, podría implementar un dispositivo de audio ficticio que enrutaría el audio a/desde donde quisiera o lo procesaría de alguna manera. Imagino que todo esto sería razonablemente difícil. MIDI es probablemente el más fácil de los tres (no tengo idea de lo fácil o difícil que es usar el protocolo Rewire).

+0

También podría escribir un plugin VST, pero el Reason no los admite, AFAIK. – Dan

3

Ambas aplicaciones son compatibles con MIDI. Es solo que no se ven.

Para enviar mensajes a través de MIDI entre aplicaciones, debe instalar un puerto midi virtual .

Hay varios libremente disponible, pero éste funciona: http://www.midiox.com/zip/MidiYokeSetup.msi

Usted obtendrá un puerto de salida MIDI virtual que se puede escribir como si se trata de un dispositivo MIDI normal. En Fruity Loops o Renacimiento, eliges ese puerto como entrada. Eso es todo lo que necesita hacer para conectar los programas.

Se va a trabajar de esta manera:

Your Application ->Virtual MIDI Port ->FruityLoops

1

Lo que necesita es un plugin guionista/secuencias de comandos MIDI VST para crear una lógica de eventos MIDI que se pueden enviar a cualquier canal MIDI. Debería establecer un canal MIDI en FL para el instrumento/efecto VST que necesita ajustar sus valores. Busque en Google hay algunos complementos y por favor vuelva a compartirlos aquí si encuentra algo útil :)

+0

SuperMidiScripter: http://azertopia.free.fr/Supermidiscripter.html y también hay VstLua que se ve bien, pero no puedo encontrar un enlace de descarga desde el sitio del autor original es hacia abajo. Comparta si lo encuentra por favor o si alguien lo tiene, cárguelo en algún lugar para nosotros. – stagas

0

Hay una estación de trabajo de música de código abierto, llamada Frinika, y puede crear una secuencia de comandos en Javascript. (Insertar/eliminar notas, cambiar los efectos midi como rueda de tono, etc.) Puede importar/exportar archivos midi regulares, por lo que funcionará con bucles Afrutados o cualquier otra cosa que tenga.

// Insert New 

song.newLane("MyMidiLane", type("Midi")); 
lane = song.getLane("MyMidiLane"); 

part = lane.newPart(time("10.0:000"), time("4.0:000")); 

part.insertNote(note("c#3"), time("11.2:000"), time("2:0"), 120); 
part.insertNote(note("f3"), time("11.3:000"), time("1:0"), 100); 
part.insertNote(note("g#3"), time("11.3:000"), time("1:0"), 100); 
part.insertNote(note("b3"), time("11.3:000"), time("0:64"), 100); 
part.removeNote(note("f3"), time("11.3:000")); 

part = song.newLane("MyTextLane", 
type("Text")).newPart(time("24.0:000"), time("10.0:000")); 
part.text = "This is the test text to be inserted."; 
part.lane.parts[0].remove(); // remove initially inserted text-part 

Otro ejemplo de lectura/notas cambiantes:

lane = song.getLane("MyMidiLane"); 
// a lane has a fixed instrument assigned 


lane.parts[0].notes[0].duration=64 
lane.parts[0].notes[1].duration=32 
lane.parts[0].notes[1].startTick=120 
// Parts are blocks of notes that you can drag around together in the Frinika GUI. 
// They're like patterns in trackers. 
for (i in lane.parts[0].notes){ 
    println("i: "+i+", n: "+noteName(lane.parts[0].notes[i].note)); 
    println("i: "+i+", dur: "+lane.parts[0].notes[i].duration); 
    println("i: "+i+", startT: "+lane.parts[0].notes[i].startTick); 
} 

http://frinika.appspot.com/ Cuenta con un lanzador de Java Webstart así, por lo que ni siquiera tiene que instalar .

También solía agrupar la documentación de Javadoc, pero por alguna razón sus últimas descargas no incluyen eso. Es una pena, porque es donde están documentados los enlaces de Javascript. Entonces, ahora tiene para explorar la fuente o construir el Javadoc usted mismo. (Tiene algunos ejemplos incorporados que se puede acceder desde la ventana de secuencias de comandos, usted debe comprobar a cabo primero Mi primer ejemplo es de allí..)

Aquí es el SourceFile donde encontrará los documentos de Javascript:

frinika Javascript doc/source

Pero también hay otras opciones. También puede consultar mingus, que es una biblioteca de Python para la teoría de la música y el manejo de archivos midi. Requiere Fluidsynth, y las aplicaciones de demostración también requieren GamePython, por lo que es un poco más complicado de configurar que Frinika.

P.S .: Frinika tiene un error en particular: al arrastrar notas vecinas, algunas pueden no sonar la longitud correcta.Puede ayudarlo transponiendo adelante y atrás las notas consecutivas (bastante rápido en la vista de piano roll), o arrastrando la parte que contiene las notas adelante y atrás. Reiniciar Frinika también ayudará, pero esa es la manera más lenta. Por lo tanto, este error no afectará a los archivos guardados, ni a la exportación midi.