Hi Irmen On Wednesday, April 13, 2016 at 12:22:25 AM UTC+1, Irmen de Jong wrote: > It seems that Python is fast enough [1] to create a real time FM music > synthesizer > (think Yamaha DX-7). I made one that you can see here: > https://github.com/irmen/synthesizer > > The synthesizer can create various waveforms (sine, sawtooth, pulse etc.) and > lets you > modify them in various ways. You can apply FM (frequency modulation), PWM > (pulse-width > modulation), volume envelopes, vibrato, and reverb/echo. It is primarily > based around > oscillators that are represented as generator functions in the code. > A GUI is provided that gives access to most of the features interactively, > and lets you > play a tune with your created FM instrument on a piano keyboard. > > You will need Python 3.x and pyaudio to be able to hear sound, and matplotlib > if you > want to see graphical diagrams of generated waveforms. > > I can't create nice music myself but this was a fun project to build and to > learn how FM > synthesizers work internally :) > > > > Irmen > > > [1]: meaning it can generate and play fairly complex waveforms based on > multiple > oscillators and filters in real time in one 44.1 kHz audio channel. That is > on a 3.2 ghz > machine. With enough oscillator/filters combined however it starts to > stutter and > cannot do it anymore in real time. However you can still generate those > waveforms and > save them to a .wav on disk to play afterwards. The code only uses one CPU > core though > so maybe there's room for improvement.
This looks fantastic - I am sure I can have a lot of fun with this. Thanks for publicising. Regards Jon N -- https://mail.python.org/mailman/listinfo/python-list