Introduction of ToySynth

1,674 views

Published on

Intrroduction of ToySynth, A pure python software synthesizer to learning python programming for bigginers.

Published in: Technology
  • Be the first to comment

Introduction of ToySynth

  1. 1. Introduction about ToySynth Pure Python Software Synthesizer 2012-09-16 Python Conference JP 2012 Open Space Session Ransui Iso Strategic Technology R&D / X-Listing Co, Ltd. Copyright (c) 2011 Ransui Iso, All rights reserved.
  2. 2. First, I play a musicthat generated by ToySynth. Copyright (c) 2011 Ransui Iso, All rights reserved.
  3. 3. Johann Sebastian Bach March 21, 1685 – July 28, 1750 Copyright (c) 2011 Ransui Iso, All rights reserved.
  4. 4. ToySynth.● Only 2 python modules. – Components.py – Sequencer.py● Pure python. – Just use standard python libraries. – It has simple archtecture, easy to learn. – Poor performance. ● It doesnt have a real-time rendering speed to make sound data. Copyright (c) 2011 Ransui Iso, All rights reserved.
  5. 5. How to get ToySynth.● You can download a tiny zip file.http://alpa.homeip.net/files/PyConJP2012/ToySynth.zip Copyright (c) 2011 Ransui Iso, All rights reserved.
  6. 6. Components.py● Component module provides some classes to make a sound. – Oscillator – Amplifier – Mixer – FrequencyModulator – LFO – Clock – Renderer – Sink – Etc ... Copyright (c) 2011 Ransui Iso, All rights reserved.
  7. 7. Music Macro Language● Code system for write musical notation. t120o4l4cdefedcrefgagfe4 t120o4l4cdefedcrefgagfe4 crcrcrcrl8ccddeeffl4edcr crcrcrcrl8ccddeeffl4edcr Copyright (c) 2011 Ransui Iso, All rights reserved.
  8. 8. MMLCompiler● Its in Sequencer module. – It convert MML string to byte-code. – Case insensitive. – White space is now allowed. – Poor lexer. – Only support basic features. Copyright (c) 2011 Ransui Iso, All rights reserved.
  9. 9. Sequencer● Executes music byte-code sequence. Set frequency at specified timing WaveFile osc Sequencer Renderer Sink MML Clock Compiler Music byte-code sequence. Copyright (c) 2011 Ransui Iso, All rights reserved.
  10. 10. Make your own sound module● Vibrato. base_osc = SineWaveOscillator() base_osc = SineWaveOscillator() diff_osc = SineWaveOscillator() diff_osc = SineWaveOscillator() Frequency diff_osc.frequency=10.0 diff_osc.frequency=10.0 osc Modulator viv_amp = Amplifeir( viv_amp = Amplifeir(     source=diff_osc,     source=diff_osc,     gain=2.0,     gain=2.0,     Attenuate=1.0)     Attenuate=1.0) viv_osc = FrequencyModulator( viv_osc = FrequencyModulator(     source=base_osc,      source=base_osc,      diff=viv_amp)     diff=viv_amp) osc amp frequency : frequency of vibrato. Gain parameter in amp. : depth of vivrato. Copyright (c) 2011 Ransui Iso, All rights reserved.
  11. 11. Thank you for listening. Happy Hacking with Python! Copyright (c) 2011 Ransui Iso, All rights reserved.

×