Binaural Beats With Python
Join the DZone community and get the full member experience.
Join For FreeHow to use python and ALSA to generate binaural beats.
# A very simple python example to generate binaural beats.
# The data is sent to the device in a too basic way, so the
# script only works well with integer frecuencies.
from alsaaudio import *
from struct import pack
from math import sin, pi
# Channel 1
frec1=317 #Frecuency
vol1=1 #Volume
#Channel 2
frec2=323 #Frecuency
vol2=1 #Volume
#Very basic choice of parameters
rate = 44100
period = 44100
channels = 2
# device initialization
out = PCM(type=PCM_PLAYBACK, mode=PCM_NORMAL, card='default')
# parameters
out.setchannels(channels)
out.setrate(rate)
out.setformat(PCM_FORMAT_S32_LE)
out.setperiodsize(period)
# a list with the sinusoidal signals is built
maxAmp = pow(2,31) - 1
list = []
i=period
while(i>0):
list.append(maxAmp*vol1*sin(frec1*float(i)/rate*2*pi))
list.append(maxAmp*vol2*sin(frec2*float(i)/rate*2*pi))
i-=1
# and the list is writen over and over again. Just kill the process to stop.
s=pack('<'+channels*period*'l',*list)
while(1):
out.write(s)
Python (language)
Opinions expressed by DZone contributors are their own.
Comments