programar plugins jesusonic

#1 por AlbertoMiranda el 02/07/2009
Hola, una alternativa a programar los VST con el SDK en C++ son los plugins JS (JESUSONIC).

http://www.jesusonic.com/soft.php

Actualmente no está muy extendida, de hecho el único DAW que lo implementa hasta ahora es REAPER, que viene cargado con cientos de estos plugins de muy buena calidad y a 64 bit.

¿Qué tiene de bueno?

Los plugins JS con libres, por lo que se puede ver el código y modificarlo a tu antojo. De hecho el archivo de un plugin JS no es más que un archivo de texto sin extensión.

Cargas un JS en Reaper y verás la opción de EDIT. Te aparecerá el editor de Jesusonic. Podrás modificar el código del plugin o crear uno nuevo desde cero. Lo increible es que Reaper viene con éste compilador integrado y esto quiere decir que un plugin creado para JS valdrá tanto para Windows, OSX, Linux...no habrá que compilarlo en una dll, directamente Reaper lo compila.

La curiosidad me ha llevado a programar un JS muy sencillo y os dejo el código en cuestión:

// (C) 2009, Alberto Miranda
// Stereo to Mono

desc:Stereo2Mono

@sample

mono= spl0 + spl1;
spl0 = mono/2;
spl1 = mono/2;


Simplemente cogeis este código, lo guardais en un bloc de notas quitándole la extensión TXT y lo meteis en la carpeta Effects que está dentro de la carpeta de Reaper.

Es el primer plugin con código que hago y como veis se trata de algo muy sencillo pero que resulta esencial para entender el funcionamiento. Convierte una señal stereo en una señal mono.

comento lo que hace cada cosa:

// (C) 2009, Alberto Miranda (los // simplemente se usa para comentar algo, es una parte que no pertenece al código a compilar)



// Stereo to Mono (comento el nombre del archivo)



desc:Stereo2Mono (el comando desc: nos sirve para darle una descripción al programa que aparecerá en la ventana del mismo, no es necesario poner punto y coma al final)



@sample (iniciamos el proceso, la manipulación del audio se realiza sample a sample)

mono= spl0 + spl1; (spl0 corresponde a L y spl1 a R, con esto creo una variable que se llama mono porque yo he querido donde digo que mono es el resultado de la suma de L y R ponemos siempre punto y coma.)

spl0 = mono/2;

spl1 = mono/2;



spl01 y spl1 equivale tanto a la entrada como a la salida, manipulamos spl y entregamos spl de nuevo.

splo= mono/2; significa que lo que sale del plugin es la señal mono dividida entre 2, es decir la mitad de mono para spl0 y la mitad de mono para spl1. ¿ por qué?

en mono= spl0+spl1 hemos sumado los dos canales L y R, y como ya sabemos, al sumarse tenemos una única muestra con la suma de las amplitudes por ello restamos si queremos obtener una señal mono con el mismo nivel que la stereo entrante.


Aquí hay una pequeña documentación:

http://www.jesusonic.com/help.html

lo dificil de todo esto es entender el audio de forma digital y sample a sample.

Un saludo
Subir
#2 por AlbertoMiranda el 02/07/2009
por aquí otro JS sencillo, un stereo flip, cambia el L por el R y el R por el L:

// (C) 2009, Alberto Miranda
// Stereo Flip

desc:Stereo Flip

@sample

l = spl0;
r = spl1;

spl0 = r;
spl1 = l;


Lo comento:

// (C) 2009, Alberto Miranda

// Stereo Flip

desc:Stereo Flip

@sample

l = spl0; //asigno la entrada spl0 a la variable l
r = spl1; //asigno la entrada spl1 a la variable r
spl0 = r; //asigno la variable r a spl0
spl1 = l; //asigno la variable l a spl1
Subir
#3 por computerneix el 02/07/2009
Pues es muy interesante!
Esto es una prueba más de que siempre hay gente inventando cosas.
Tampoco conocía Reaper, aunque es una pena que sea cerrado, de pago y para Ventanas y Leopardos. :cry:

"Dale ritmo a tu algoritmo"

http://musicnumbers.wordpress.com/nxreleases/

Subir
#4 por AlbertoMiranda el 02/07/2009
hola si te refieres a Reaper es totalmente funcional en su modo "demo" a parte está optimizado para su uso con wine en linux por lo que soporta VST windows en linux.

un saludo


por cierto, muy interesantes los enlaces que tienes en la web. :D
Subir
#5 por Fernan486 el 02/07/2009
Enlazo este post al foro de reaper, que a estos no sacas de ahí :lol: :lol: :wink:

Muy bueno, Alberto. Parece sencillito; pero le veo limitaciones. Por ejemplo, ¿cómo crear una pantallita en la que aparezca la forma de onda (pa`hacer un minisampler)?

Sin embargo, mola mucho. Investigaré.

¡Saludos y gracias!

El graffiti en la cochera y el break en cartón de nevera.
Who is tha meeeeeeeeeeeeeeeenn???.

Visita mi blog:
http://www.demsadas.tk/ (Si encontráis problemas con la visualización, avisadme por favor)

[url=http://www.myspace.com/demo

Subir
#6 por Real_Kcan el 03/07/2009
magnifico!! siempre me a gustado la programacion, en realidad llegue a la musica cuando de chico intentaba programar mis jueguitos en flash y quise hacerle un soundtrack original :D

muy interesante lo de los plugins js :-k

-Lo peor de la ignorancia..es que.. a medida que se prolonga, adquiere confianza-

Subir
#7 por AlbertoMiranda el 06/07/2009
es tan interesante como que te puedes construir tu propia pedalera que tire de linux con los JS...una miniplacabase un procesador normalito y tirando....hay un JS guitar que usa convolución para la emulación de amplis...
Subir
#8 por virtuosisimo el 16/03/2010
aqui tiene uno muy util

// Mute

desc:mUTe

@sample

spl0 = spl1 = 0;
Subir
#9 por AlbertoMiranda el 17/03/2010
virtuosisimo escribió:
aqui tiene uno muy util

// Mute

desc:mUTe

@sample

spl0 = spl1 = 0;



minimalismo! jeje
Subir
#10 por virtuosisimo el 19/03/2010
Fernan486 escribió:
Enlazo este post al foro de reaper, que a estos no sacas de ahí :lol: :lol: :wink:

Muy bueno, Alberto. Parece sencillito; pero le veo limitaciones. Por ejemplo, ¿cómo crear una pantallita en la que aparezca la forma de onda (pa`hacer un minisampler)?

Sin embargo, mola mucho. Investigaré.

¡Saludos y gracias!


jesusonic, si tiene funciones para graficos, aunque de muy bajo nivel, puedes checar mi distorsion que incluye una gui
http://virtuodrive.svn.sourceforge.net/viewvc/virtuodrive/

todavia no he publicado paquetes, pero el codigo esta disponible en el repositorio svn
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo