Sunday, May 25, 2014

25. Filtered Noise


A noise source is used in all the examples. A Butterworth is a particular class of filters; they provide good audio quality. The particular filters, we shall use, are 2nd order. The higher the order, the more accurate but with more computations. With other csound opcodes, you can build any kind of filter.




There are four kinds of filter you can have. The first is the low-pass, which passes frequencies below some frequency, and rejects, that is, attenuates, higher frequencies.




The high-pass filter works in the opposite manner, to the low-pass, and lets the higher frequencies pass.




The third kind of filter is the band-pass. This let's frequencies, in a certain range pass, while, rejecting those outside a range. Here, we have to give the frequency corresponding to the middle of band, as well as the bandwidth.




The band-reject filter is opposite to the band-pass. This passes frequencies outside the range of the band.




Here, we have instrument strings for Noise, to serve as reference, and a low-pass filtered noise.




These are strings showing the other 3 band filters.




Finally, the reference, and the four filtered noise signals are added to different instruments.




This creates a score, calling each instrument for a 2 second duration.


# Filters.py

from moduleCsound import *
addTag(startSyn,startOpt,stopOpt,startIns)
header(nch=2)

# *** Instrument Strings ***
WhiteNoiseString="""
asig rand 0.6
out asig, asig
"""

LowPassString="""
asig rand 0.6
alp  butterlp asig, 1000 ;passing frequencies below 1 KHz
out alp, alp
"""

HighPassString="""
asig rand 0.6
ahp  butterhp asig, 500 ;passing frequencies above 500 Hz
out ahp, ahp
"""

BandPassString="""
asig rand 0.6
abp  butterbp asig, 1000, 100 ;passing band from 950 to 1050 Hz
out abp, abp
"""

BandRejectString="""
asig rand 0.6
abr  butterbr asig, 10000, 10000 ;rejecting band from 5 kHz to 15 kHz
out abr, abr
"""

instrument('White Noise',1,WhiteNoiseString)
instrument('Low Pass',2,LowPassString)
instrument('High Pass',3,HighPassString)
instrument('Band Pass',4,BandPassString)
instrument('Band Reject',5,BandRejectString)

addTag(stopIns,startSco)

# *** Table ***
table('1. Sine wave',1,0,8192,10,1)

# *** Score ***
rem('Noise Filtering Score')
for i in range(5): score(i+1,2*i,2)

addTag(stopSco,stopSyn)
writeRun('Tut25')




You will find additional information at pythonaudio.blogspot.com, including the source code.



This is the video of Tutorial 25:


20 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. I appreciate your work on Python. It's such a wonderful read on Python course. Keep sharing stuffs like this. I am also educating people on similar Python training so if you are interested to know more you can watch this Python tutorial:-https://www.youtube.com/watch?v=qgOXopu4n7c

    ReplyDelete
  9. thanks for sharing more valuable information.we are clearly understand this topic.this might be useful for people those who want lead their carieer in python.we do have dedicated and experience developers for hire. any one wants hire dedicated developers feel free to contact us Hire Python Developer

    ReplyDelete
  10. Top Trending Technologies of 2019. Watch here:https://www.youtube.com/watch?v=-y5Z2fmnp-o

    ReplyDelete
  11. thank you for sharing useful post.
    web programming tutorial
    welookups

    ReplyDelete
  12. Thank you for sharing such great information very useful to us.
    Python Training in Gurgaon

    ReplyDelete
  13. Many cricket matches have over a hundred markets. These are the markets from which you will choose one or a few. If you don't have world777 strategy in place, you'll most likely choose a market at random, glance at the chances, and make a wild estimate in the hopes of winning.

    ReplyDelete

About Me

I have used Python for the last 10+ years. I have a PhD in Electrical Engineering. I have taught Assembly Language programming of Intel-compatible chips as well as PC hardware interfacing. In my research, I have used Python to automate my calculations in physics and chemistry. I also use C++ and Java, often with Python.