Platinum Partner

Binaural Beats With Python

How 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)
{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}