GithubHelp home page GithubHelp logo

standardgalactic / wolframamadeus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from diegorandom/wolframamadeus

0.0 1.0 0.0 257 KB

WolframAmadeus es código libre de SC e integración con Wolfram Mathematica, programa que interpreta la representación gráfica de una función matemática procesada a través de la derivación o la integración siendo su output una señal de audio. licencia GNU General Public License v3.0

License: GNU General Public License v3.0

SuperCollider 76.72% Mathematica 23.28%

wolframamadeus's Introduction

WolframAmadeus

Arquitectura del proyecto

Licencia - GNU General Public License v3.0

Protocolo de comunicación entre Mathematica y SC

Sistema de servidor-cliente donde el servidor es mathematica y SC es el cliente. El servidor escribe la información en un archivo de texto y el cliente lee la información del archivo.

No estoy utilizando un protocolo de comunicación tradicional. Es bastante rudimentario de hecho. Es necesario correr el código el código en SC y mathematica en paralelo. Tienes que tener Mathematica 9 instalado para correr el código (El código corre pero no se comporta de forma esperada en las nuevas versiones del Mathematica, especulo que las nuevas versiones descontinuaron algunas de las funciones que estoy usando ).

Una vez corriendo en paralelo ambos códigos (WolframAmadeus/WolframAmadeus_01102016.scd y WolframAmadeus/wftemp/Integ-deriv_Program (con tabulacion).nb ), el protocolo de comunicación consiste de un (pseudo)-sistema Servidor-Cliente donde Mathematica revisa cada X milisegundos si alguno de los archivos temporales en wftemp correspondientes a los diferentes procesos de cálculo ha sido modificado.

En caso de que SC modifique el archivo .txt con una nueva función matemática, Mathematica tiene algunos .6 segs (Muchísimo tiempo) para leer el archivo de texto y comenzar a procesar la función. Después de este tiempo, el archivo es reseteado a un valor default (cero).

Entonces, Mathematica procesará esta función de Cálculo Integral/Diferencial, la cual debió ser escrita en SC por el usuario en textFormat (nada agradable de escribir, lo sé, te invito a mejorarlo ;) ).

Tomemos en cuenta que la función puede ser súper compleja, Wolfram Mathematica es capaz de resolver las más dificiles de las integrales, todo ingeniero ha usado el servicio web (mucho más lento que el embebido en su IDE) en cuestión de segundos.

Una vez resuelta la función se reenvía a SC con el mismo protocolo de comunicación.

Entonces SC utiliza el arreglo de valores de la gráfica de la respuesta general de la función para ser stremeada por cada uno de los módulos que se mencionan más adelante.

Componentes

1 Servidor de procesamientos matemáticos

Funcion integradora y Funcion derivadora Realiza con Wolfram Mathematica (Versión 9) todas las operaciones de cáculo enviadas por SuperCollider y regresa una solución general al problema así como los puntos de la gráfica de la función matemática, tal gráfica será usada por SuperCollider para llenar un arreglo unidimensional de valores que serán servidos en un streams paralelos a diferentes generadores de audio para construir la experiencia sonora.

2.GUI y asignación de paramétros

En esta seccion, a partir de synths y generadores unitarios se crearán patrones, escalas y efectos.

3.GUI - Interfaz para el usuario.

Video tutorial del software - https://www.youtube.com/watch?v=D2h2Vl4OYZs

El proyecto está dividido por modulos de funciones para que estos puedan ser programados simultaneamente. La arquitectura se divide en dos partes; los mudulos del programa y la unificacion del programa.

Parte I

Modulo de integracion - Funcion de integracion que devuelva la solución y la gráfica

Modulo de derivacion - Funcion de derivacion que devuelva la solución y la gráfica

Modulo de patrones - Funcion que generará un patrón de percusiones en caso de que a gráfica de la solucion controle el volumen de la señal raiz

Modulo de reverb - Funcion que generará un reverb en caso que la grafica de la solucion controle un reverb sobre la señal raiz

Modulo de desfase - Funcion que genere un desfase en caso de que la grafica de la solucion controle la fase de una señal raiz

Modulo Pulso - Funcion que genere un pulso cuando queremos que la gráfica controle la tasa de pulsos

Modulo de paneo - funcion que panie el synth raiz

Modulo de vibrato - vibrato sobre el synth raiz

Modulo de delay - delay sobre la senal raiz

Modulo 8 - SIN TERMINAR codigo para usar el teclado

Modulo 9 - GUI - Cabe mencionar que el GUI sera solo un cascaron hasta que los primeros dos modulos esten terminados y se unifique el codigo.

Por Diego Ignacio Ortega

wolframamadeus's People

Contributors

diegortega avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.