Metadata-Version: 2.4
Name: organ_pipe_waveguide
Version: 0.0.1
Summary: A package for physically modelling the sounds of a pipe organ.
Author-email: William Brady Call <wbradycall@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/wbradycall/organ_pipe_waveguide
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.1.3
Requires-Dist: scipy>=1.17.1
Dynamic: license-file

# Organ Pipe Waveguide

This project is to be used for physically modeling organ pipes. However, it's not 100% realistic just yet and it needs some tweaking. It also only includes flue pipes for now but in later versions, it will include reed pipes.

To import the flue pipe model, you need to import the 'flue_pipe' class which one can import via "from organ_pipe_waveguide.FluePipe import flue_pipe". Here are the default parameters for the 'flue_pipe' object-oriented class and the methods:

flue_pipe(self,note=0,default_diam=0.1555,rho=1.225,c=343,gain1=0.05,gain2=0.8,k=1.4)

<!-- This method is for generating the turbulence. -->
jet_noise(self,time,fs=44100,seed=41)

<!-- This method is for creating the IIR filter function and returns a tuple of the list of beta values and the list of alpha values. -->
create_IIR(self,fs=44100)

<!-- This method is for applying an IIR filter. -->
def IIR(self,input_array,filter_array,index,beta,alpha)

<!-- This method is for adding an envelope to generated noise so that one can use it to resonate. -->
create_input(self,time,noise_data,amp=0.5,attack=0.1)

<!-- This method is for applying a non-linear jet-flue interaction simulator. -->
nonlinearity(self,input_array)

<!-- This method is for simulating the acoustics of the organ pipe and writing it to a .wav file (make to sure add '.wav' or ".wav" to the end of your filename). -->
simulate(self,filename,duration,init_amp=0.5,fs=44100,seed=41)
