Sí, mucho mito. Si un sistema operativo de 32 bits para un procesador de Intel está limitado a 4 gigas es porque le da la gana estarlo o porque los que lo desarrollaron no daban para más.
Los procesadores de Intel funcionando en 32 bits, desde el año 94, son capaces de direccionar hasta 64 gigas. Hay quien dice por ahí que es cuestión de matemáticas, que 2^32 son 4 gigas y no hay más, pero habría que ver de dónde sale el 32. Una cosa es el tamaño de un registro de un procesador y otra el tamaño de su bus de direcciones. El Z80, procesador de 8 bits, con registros de 8 bits, tenía un bus de direcciones de 16, 64k (qué tiempos aquellos). En el 8086, registros de 16 bits, el bus de direcciones es de 20 bits, y direccionaba un mega. El 80286, 16 bits en los registros, 24 en el bus de direcciones, 16 megas. Pues un procesador de Intel, desde el año 1994, registros de 32 bits, bus de direcciones de 36, 2^36, 64 gigas.
Otra cosa es que pueda o no el XP, o que la placa base donde esté el procesador se aclare con más de 4 gigas. Hasta el Windows 2000 soportaba más de 4. Pero que el XP es un cacharrillo yo ya me he hartado de decirlo.
Y eso es la memoria real, que se direcciona con el direccionamiento real. Desde el año 1982, desde el lanzamiento del 80286, en los procesadores de Intel hay dos tipos de direccionamiento: uno es el real, con el que se direcciona los módulos de memoria que tengas instalados, y otro es el virtual. El virtual es el que usa el software, los programas, que no saben si están accediendo a la memoria real, al disco, a un archivo en memoria, o hasta la red, y nada saben del direccionamiento real. Y los procesadores de Intel, para que el software direccione y use la memoria, le proveen de 46 bits. Lógicamente no hay programa que tenga a su disposición toda esa memoria, porque algo quiere también el sistema operatiyo y otros programas que haya. Se gestiona todo a base de segmentos, que se referencian con los descriptores de segmento. Para programas, el windows e Intel, dejan 8000 y pico descriptores para referenciar otros tantos segmentos. Cada segmento puede ocupar un máximo de 4 gigas, pero con que un programa tenga a su disposición 4 descriptores.... Así que si un programa no puede usar más de 4 gigas será porque quiere, o porque el que lo programó no daba para más.
No es cierto que se hagan procesadores y sistemas operativos de 64 bits para direccionar más memoria. Para eso basta con aumentar el tamaño del bus de direcciones. Además, cuando se habla de tamaño de registros de un procesador se toma como referencia uno de ellos, el acumulador, dado que tiene muchos, y de distintos tamaños. Hasta un 486, lanzado en 1989, acumulador de 32 bits, tiene registros de 128. Así que el acumulador puede ser del tamaño que quieras, lo importante es lo que tenga para direccionar memoria. Y procesadores de 128 bits, con bus de datos de 128 bits, y registros para manejarlo de 128 bits, existen desde antes que Intel sacara procesadores que manejen 64 gigas. Y, por cierto, el bus de direcciones de esos procesadores era de sólo 34 bits.
La ventaja de poner un sistema operativo de 64 bits depende mucho. Yo sigo con el 2003 de 32 bits, instalado hace casi 10 años. ¿Tendría que ponerme algo a 64? Rotundamente, sí. Si yo hago un programa para un sistema operativo antiguo puede ser que uno nuevo no funcione bien, y en uno nuevo van a usar luego ese programa. El windows 7 es mucho más estricto en cuanto a derechos de acceso que un 2003, o pueden haber cambiado algo en cuanto a compatibilidad, y la compatibilidad es siempre hacia abajo, a lo más antiguo, no hacia arriba, a lo nuevo. Un programa hecho este año, en 64 bits, estará mejor diseñado que uno de hace 10 años. Si han desarrollado un algoritmo más eficiente, que consume menos cpu o suena mejor, estará en el programa nuevo, no en el antiguo. Así que es mejor tener programas nuevos.
Un procesador y sistema operativo de 64 bits sí puede ir más rápido que uno de 32. En un impulso, uno de 32 mueve 32, y uno de 64 mueve 64, el doble. En el caso de la música, si tienes algo a 32 bits, usarás datos de 32 bits, floats, y en 64, usarás doubles. En cada impulso en 32 bits cogeras 32 bits, una muestra, y en 64 cogerás 64 bits, una muestra, lo mismo. En ese caso concreto se tarda lo mismo. En pasar los datos a la fpu, también se tarda lo mismo. En un caso le pasarás 64 bits y en el otro 32, que transformará siempre a 80, que es a lo que trabaja la fpu. Ten en cuenta que la prueba que has hecho tú ha sido en un sistema operativo recién instalado, que siempre va a correr más que uno que lleve 5 años y esté cargado de cosas y de errores.
Puede parecer que siendo la resolución mayor en 64 bits la calidad de sonido será mayor. En 32 bits, el rango de valores que se usa en las muestras float va de -1 a 1. O sea, algo a tope de volumen, volumen 0, tendrá un valor de 1 o -1, no más. De ahí viene lo que se suele decir de que con floats es imposible distorsionar. Puedes liarte a hacer todos los cálculos que quieras, que partiendo como máximo de un 1 difícilmente vas a salirte del float. Si quisiéramos mas resolución no tendríamos más que usar un rango de 2 a -2, y ya tendríamos el doble. O usar de 10 a -10, o de 1000 a -1000, y tendríamos 1000 veces más de resolución. 1000 es 10^3. El rango de valores que admite un float va de -10^38 a 10^38, no se cuántos miles de trillones de veces más. Así que para tener mejor calidad de sonido no hace falta para nada el rango de -10^350 a 10^350 que admite el double. Si alguno tiene monitores y oído adecuados, que pruebe a ver si nota diferencia.
Concluyendo, sí, ponte un sistema operativo de 64 bits. Si el programa de 32 bits está lo suficientemente bien hecho podrá usar toda la memoria que tengas. Si tienes problemas con eso, ponte el programa de 64. En calidad de sonido no notarás nada entre un programa de ayer de 32 bits y otro también de ayer de 64. Y con los plugins, lo mismo.
2