usuarios de Akai mpc's y más cosas

Comparativa entre el comportamiento de un filtro analógico en alta frecuencia y uno digital
Se realiza la conversión del filtro analógico desde el domino s al dominio digital z, mediante la transformada bilineal (BLT).

Así la función de transferencia de un filtro paso bajo de un polo se puede expresar así:


 

kill(all);
Hz2Rad(x):=float(x*2*%pi)$
dB(x):= float(20 * log(abs(x))/log(10))$
H(s):=1/(s/ωc+1)$ /*funcion de transferencia paso bajo 1 polo*/ 
fc:round(makelist(2^(10*x)*20,x,0.5,1,0.1))$/*6 frecuencias de corte*/
ωc:float(Hz2Rad(fc))$Hs:makelist(1/(s/x+1),x,ωc)$freq: []$
gaindB1:[]$
gaindB2:[]$
gaindB3:[]$
gaindB4:[]$
gaindB5:[]$
gaindB6:[]$n_muestras:150$
delta:ceiling(22050/n_muestras)$
for f:0.1 step delta thru 22050 do
(
ω:2*%pi*f/*frecuencia angular*/
s:%i*ω,
auxdB: dB(ev(cabs(Hs[1]))),
gaindB1: append(gaindB1,[auxdB]),
auxdB: dB(ev(cabs(Hs[2]))),
gaindB2: append(gaindB2,[auxdB]),
auxdB: dB(ev(cabs(Hs[3]))),
gaindB3: append(gaindB3,[auxdB]),
auxdB: dB(ev(cabs(Hs[4]))),
gaindB4: append(gaindB4,[auxdB]),
auxdB: dB(ev(cabs(Hs[5]))),
gaindB5: append(gaindB5,[auxdB]),
auxdB: dB(ev(cabs(Hs[6]))),
gaindB6: append(gaindB6,[auxdB]))$for f:0.1 step delta thru 22050 do
(
freq: append(freq,[f])
)$lista1:[discrete,float(freq),float(gaindB1)]$
lista2:[discrete,float(freq),float(gaindB2)]$
lista3:[discrete,float(freq),float(gaindB3)]$
lista4:[discrete,float(freq),float(gaindB4)]$
lista5:[discrete,float(freq),float(gaindB5)]$
lista6:[discrete,float(freq),float(gaindB6)]$lista:[lista1,lista2,lista3,lista4,lista5,lista6]$fc1:string(fc[1])$
fc1:sconcat(fc1,Hz)$
fc2:string(fc[2])$
fc2:sconcat(fc2,Hz)$
fc3:string(fc[3])$
fc3:sconcat(fc3,Hz)$
fc4:string(fc[4])$
fc4:sconcat(fc4,Hz)$
fc5:string(fc[5])$
fc5:sconcat(fc5,Hz)$
fc6:string(fc[6])$
fc6:sconcat(fc6,Hz)$
fcs:[fc1,fc2,fc3,fc4,fc5,fc6]$wxplot2d(lista,
[x,10,22050],
[y,20,3],
[logx],
[legend,fcs[1],fcs[2],fcs[3],fcs[4],fcs[5],fcs[6]],
[color,blue,blue,blue,blue,blue,blue],
[grid2d,true],
[xlabel,Frecuencia(Hz)],
[ylabel,Amplitud(dB)],
[label,[3dB,fc[1],3],[3dB,fc[5],3]]
);

 


 

Vemos que el comportamiento del filtro analógico en la gráfica de arriba para diversas frecuencias de corte,
ahora la tarea es mediante la la transformada bilineal BLT, convierte la función de transferencia en s-→z
y calcular la gráfica para las diversas frecuencias y comprobar la diferencias entre el comportamiento s<–>z

/**/
gaindBd1:[]$
gaindBd2:[]$
gaindBd3:[]$
gaindBd4:[]$
gaindBd5:[]$
gaindBd6:[]
/*H(s):=1/(s/ωc+1)$*/
s: 2/T*(z1)/(z+1)$ /*transformada bilineal BLT*/
samplerate:44100$ /*samples/s*/
T: float(1/samplerate)$
Hz:ev(H(s))$
Hz:ratsimp(Hz)for f:0.1 step delta thru 22050 do
(                                 
ω:2*%pi*f/*frecuencia angular*/
Ω:ω*T,  /*frecuencia en digital*/
z: exp(%i*Ω),
auxdB: dB(ev(cabs(Hz[1]))),
gaindBd1: append(gaindBd1,[auxdB]),
auxdB: dB(ev(cabs(Hz[2]))),
gaindBd2: append(gaindBd2,[auxdB]),
auxdB: dB(ev(cabs(Hz[3]))),
gaindBd3: append(gaindBd3,[auxdB]),
auxdB: dB(ev(cabs(Hz[4]))),
gaindBd4: append(gaindBd4,[auxdB]),
auxdB: dB(ev(cabs(Hz[5]))),
gaindBd5: append(gaindBd5,[auxdB]),
auxdB: dB(ev(cabs(Hz[6]))),
gaindBd6: append(gaindBd6,[auxdB]))listad1:[discrete,float(freq),float(gaindBd1)]$
listad2:[discrete,float(freq),float(gaindBd2)]$
listad3:[discrete,float(freq),float(gaindBd3)]$
listad4:[discrete,float(freq),float(gaindBd4)]$
listad5:[discrete,float(freq),float(gaindBd5)]$
listad6:[discrete,float(freq),float(gaindBd6)]listad:[listad1,listad2,listad3,listad4,listad5,listad6]$wxplot2d(listad,
[x,10,22050],
[y,20,3],
[logx],
[legend,fcs[1],fcs[2],fcs[3],fcs[4],fcs[5],fcs[6]],
[color,blue,blue,blue,blue,blue,blue],
[grid2d,true],
[xlabel,Frecuencia(Hz)],
[ylabel,Amplitud(dB)],
[label,[3dB,fc[1],3],[3dB,fc[5],3]]
);

 




listaf:append(lista,listad)
wxplot2d(listaf,
[x,10,22050],
[y,20,3],
[logx],
/*[legend,fcs[1],fcs[2],fcs[3],fcs[4],fcs[5],fcs[6]],*/
[legend,false],
[color,blue,blue,blue,blue,blue,blue,red,red,red,red,red,red],
[grid2d,true],
[xlabel,Frecuencia(Hz)],
[ylabel,Amplitud(dB)],
[label,[3dB,fc[1],3],[3dB,fc[5],3]]
);
 

 

 

Comprobamos que en el gráfico de arriba la gran diferencia de comportamiento de los filtros digitales y analógicos en alta frecuencia, al realizar la transformada bilineal (BLT), s-→z.


Created with wxMaxima.

Anuncios

yamaha-a3000
El ¿Por qué?:
en mi antigua configuración con win xp 32 bits podía acceder a mi querido sampler yamaha A3000 con una tarjeta scsi-PCI, a la memoria del sampler.
Esto me permitía subir y bajar cómodamente los samples, entre la memoria del sampler y mi PC, para usar cómodamente la función LoopRmx, una opción del menú del sampler que trocea y reordena de forma aleatoria y muy musical, los samples cargados, ideal para el drum’n’bass y otros géneros alternativos. No he encontrado una alternativa en software que me dé esas alegrías hasta la fecha.

El ¿Cómo?:
Ante la compra de un nuevo PC tipo semitorre, las placas madres nuevas ya no soportan PCI, sino PCI-e…¡Qué dilema!, he buscado alternativas por la red…y no hay nada al respecto ( o no he sabido encontrarlo)… por eso estás leyendo este panfleto.

Enumeraré el material inicial del que dispongo:
Un sampler Yamaha A3000.
Una tarjeta scsi-PCI LSI Logic tipo 876 o así…realmente no sabía exactamente que modelo era, pues en la PCB no pone nada, sólo en los driver para win xp, veía que pertenecen a la familia xx87xx.

(editado: Vaya, viendo la foto -que cada vez la vista la tengo peor, es lo que pasa cuando uno se hace viejuno-veo que mi tarjeta es del modelo 53C810A).

20170127_132408

En mis búsquedas por la red, vi una tarjeta adaptadora, que como veis en la foto es de PCIe a PCI… dicho y he hecho, me hice con la misma.

pci2pcie

Una vez montada una sobre otra, y esta sobre el PC; para ello tuve que desarmar el embellecedor externo de la tarjeta scsi porque sino, no entraba en la ranura de la carcasa del PC, conecté el cable scsi del pc al sampler, y encedí el PC con win7.

Bueno, a hora viene la parte jugosa: Los drivers necesarios para correr sobre un S.O. de 64bits.
vamos a necesitar en primer lugar, instalar los drivers para que la scsi reconozca
al sampler, de este enlace de los puedes bajar…y como veras hay una versión para win NT de 64 bits; mola!, se instalan a la primera (aspi_v472a2.zip).

Después quedan los drivers de la tarjeta scsi LSI Logic familia 876.
Esto me dio un poco más de guerra, pero los conseguí aquí.
(LSI_Logic_20160_win2k8r2_x64_drivers.zip)-enlace actualizado-.

administrador-de-dispositivos

Todo parece correcto, ya reconoce el sampler y  como ves estoy bajándome y subiendo archivos de audio directamente de la memoria del sampler. Como ya comenté antes mi tarjeta no es exactamente ese modelo, pero veo que funciona.

transferecia-archivos-pc-yamahaa3000

un último aviso, cuando enciendas el PC debes tener el sampler encendido, pues de lo contrario  saltará el famoso pantallazo azul.

JJChop 2.3b

JJChop

He realizado una pequeña revisión de la utilidad para convertir ficheros wav ordinarios en wav tipo JJo2XL de la mpc1000 y 2500, que incluye la detección del número slices, si están incluidos en la información del propio wav.

Ahora, al abrir un fichero wav, si tiene incluida información de slices, estas rodajas aparecen señaladas en la pantalla inicial.

 

Felices fiestas.

JJChop web

 

 

 

 

No os voy a hacer pender el tiempo, como yo lo he perdido tratando de pasar mis citas en Outlook al Calendar de Android.

No he encontrado una aplicación que me resuelva el problema, que sea gratis. Así que lo que voy a contar aquí, a partir de ahora no es más que un apaño.

Más claro: No he conseguido pasar mis citas de Outllook al Calendar de Android, por lo que si ese es tu objetivo quizás no te interese lo que digo más abajo.

Empecemos por el principio, si tienes una cuenta en Outlook del tipo pop3 y tienes una cuenta de Gmail, este último te permite añadir una cuenta pop3.

Dicho y hecho, he habilitado la misma cuenta que tengo en Outlook, en el Gmail, en este menú que ves

 usas la rueda dentada de la parte superior de Gmail y en configuración, cuentas e importación verás donde tengo señalado añadir una cuenta de correo tipo pop3.

img01

los datos que te va a pedir son los típicos, servidor de correo entrante y saliente. No tienes más que copiar los datos que tengas asignados en Outlook en el menú, herramientas, opciones, configuración de correo, cuentas de correo electrónico, le das a cambiar y verás el gráfico que te muestro para copiar los parámetros necesarios que te pide Gmail:

img02

una vez configurado Gmail, recibirás por duplicado los correos entrantes en la bandeja de Outlook y en Gmail. Este es un mal menor necesario.

lo importante es que cuando recibas un correo del tipo nueva convocatoria de reunión desde Outlook, también lo recibirás en Gmail, así si desde tu móvil aceptas la cita, se te añade al Calendar de Android automáticamente.

Si tu eres el que redactas la reunión en Outlook, no tienes más que ponerte en copia en la cuenta de Gmail, para recibirlo en el  móvil y así añadir la cita.

Y eso es todo, espero que os ayude y no perdáis el tiempo que yo he perdido en buscar una solución aceptable para la incomunicación entre Android y Outlook.

A finales del año pasado he implementado unas pequeñas pequeñas mejoras en el editor de chops de mi mpc1k.

  • Ahora podemos realizar el zoom de la onda mediante la rueda del ratón.
  • Nos permite salvar en formato PGM para cargar directamente el programa en nuestro mpc.
  • Podemos escuchar el wav desde la posición que deseemos en la pantalla con solo apretar el botón derecho del ratón.
  • Carga más rápida de los wav’s.
  • Corrección de pequeños bugs en los ficheros salvados.

Me gustaría haber añadido muchas más cosas, pero el poco tiempo que dispongo, y pensando que esta utilidad sólo es compatible con el penúltimo os de JJ (o2/XL), aunque el más usado, seguramente será la última revisión que realice a esta pequeña utilidad.

Como siempre la podéis descargar aquí

No te olvides de invitarme a una cerveza!.

PCB para puertos MIDI

Quizás tengas la necesidad de conectar tu microcontrolador (arduino, PIC, TI,…) a algún instrumento musical que lleva esos puertos midi din 5 pines (por otra parte cada vez más en deshuso).

He diseñado una PCB con componentes ThrueHole que fácilmente puedes realizar en tu casa.

He probado conectándolo al puerto serial (tx,rx) 5v. de mi arduino uno y de mi TI Tiva TM4C123G con 3.3v y han funcionado sin problemas.

 

Aquí les dejo el esquema del circuito,

midi_esquema

 

 

El diseño para la PBC,

midi_PCB

 

y la vista en 3D para que vean como puede quedar una vez realizada la PCB.

midi_3D

 

Los números de 2014

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2014 de este blog.

Aquí hay un extracto:

Un tren subterráneo de la ciudad de Nueva York transporta 1.200 personas. Este blog fue visto alrededor de 3.800 veces en 2014. Si fuera un tren de NY, le tomaría cerca de 3 viajes transportar tantas personas.

Haz click para ver el reporte completo.

Nube de etiquetas