SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Pure Python
Software synthesizer
        2011-06-11
 Python mini Hack-a-thon #9
          at gumi
Who are you?
Ransui Iso @ X-Listing.

 I'm Common Lisper,
But use python heavily.
I like Chip-Tune Music very much.
Modern DTM system generates very rich sound,
  but the system can't generate PIKO-PIKO
                 sound well.
So, I made
   a toy software synthesizer
to generate PIKO-PIKO sound.
It generates PSG like
 square-wave sound.

PSG is 'Programmable Sound Generator”,
  which has been commonly use for
       computer and game music
               In 1980's
Square-wave form is good for PIKO-PIKO sound
Architecture of Synthesizer
              Oscillator




              Oscillator
   MML
                             Mixer
Interpreter

              Oscillator




              Oscillator


                           Raw PCM
                           binary data
Music Macro Language
●   Musical notation scores can translate to MML.
●   Note : CDEFGAB and R
    ●   + as #, - as ♭
●   Musical Control
    ●   Tempo                   T
    ●   Volume                  V
    ●   Octave                  O
    ●   Default key on length   L
How to generate MML to PCM data

   MML String




   Tokenizer    Notation Generator



                  Sequence of        Square Wave
                  Note instance       Generator



                                     RAW PCM
                                     Binary data.
Splitted output module

    Software Synthesizer          FIFO         Output Driver Software




                                                       PyQt

Qt Layer
                                                   QtMultimedia




OS Layer
                           ALSA          DIrectSound      Esound, etc...
Let's see the code!
   You can find the python source code at pasetebin.

Raw PCM data generator : http://pastebin.com/h2fxLACS
 Sound Output Program : http://pastebin.com/gf0SXULY
DEMO
Have you heard of this?
Thank you for LISTNING
     Happy Hacking!!

Weitere ähnliche Inhalte

Was ist angesagt?

It's so quiet. Let's make music.
It's so quiet. Let's make music.It's so quiet. Let's make music.
It's so quiet. Let's make music.Loren Segal
 
FFunction: We Love Python !
FFunction: We Love Python !FFunction: We Love Python !
FFunction: We Love Python !FFunction inc
 
Paper on Modeling and Subtractive synthesis of virtual violin
Paper on Modeling and Subtractive synthesis of virtual violinPaper on Modeling and Subtractive synthesis of virtual violin
Paper on Modeling and Subtractive synthesis of virtual violinVinoth Punniyamoorthy
 
Ry pyconjp2015 karaoke
Ry pyconjp2015 karaokeRy pyconjp2015 karaoke
Ry pyconjp2015 karaokeRenyuan Lyu
 
JoeWangVisitingScholarProjectSummary
JoeWangVisitingScholarProjectSummaryJoeWangVisitingScholarProjectSummary
JoeWangVisitingScholarProjectSummaryJoe Wang
 
From Music to Visuals – and Back
From Music to Visuals – and BackFrom Music to Visuals – and Back
From Music to Visuals – and BackReinhold Behringer
 

Was ist angesagt? (11)

It's so quiet. Let's make music.
It's so quiet. Let's make music.It's so quiet. Let's make music.
It's so quiet. Let's make music.
 
Lab Activity
Lab ActivityLab Activity
Lab Activity
 
FFunction: We Love Python !
FFunction: We Love Python !FFunction: We Love Python !
FFunction: We Love Python !
 
Paper on Modeling and Subtractive synthesis of virtual violin
Paper on Modeling and Subtractive synthesis of virtual violinPaper on Modeling and Subtractive synthesis of virtual violin
Paper on Modeling and Subtractive synthesis of virtual violin
 
Ry pyconjp2015 karaoke
Ry pyconjp2015 karaokeRy pyconjp2015 karaoke
Ry pyconjp2015 karaoke
 
Python Workshop
Python WorkshopPython Workshop
Python Workshop
 
JoeWangVisitingScholarProjectSummary
JoeWangVisitingScholarProjectSummaryJoeWangVisitingScholarProjectSummary
JoeWangVisitingScholarProjectSummary
 
Hom Class
Hom ClassHom Class
Hom Class
 
Hom Class
Hom ClassHom Class
Hom Class
 
Podcasting live grouped
Podcasting live groupedPodcasting live grouped
Podcasting live grouped
 
From Music to Visuals – and Back
From Music to Visuals – and BackFrom Music to Visuals – and Back
From Music to Visuals – and Back
 

Andere mochten auch

Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るChikashi Miyama
 
ArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうtadfmac
 
Pagination Done the Right Way
Pagination Done the Right WayPagination Done the Right Way
Pagination Done the Right WayMarkus Winand
 
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングRansui Iso
 
Introduction to Chainer: A Flexible Framework for Deep Learning
Introduction to Chainer: A Flexible Framework for Deep LearningIntroduction to Chainer: A Flexible Framework for Deep Learning
Introduction to Chainer: A Flexible Framework for Deep LearningSeiya Tokui
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
Sales presentation market explore-english
Sales presentation   market explore-englishSales presentation   market explore-english
Sales presentation market explore-englishRachid QCHIQACH
 
Introduction of hey chongqing!
Introduction of hey chongqing!Introduction of hey chongqing!
Introduction of hey chongqing!怡安 陳
 
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Aula 1   a obra de kant como síntese do nascente pensamento burguêsAula 1   a obra de kant como síntese do nascente pensamento burguês
Aula 1 a obra de kant como síntese do nascente pensamento burguêsLeandro Alano
 
Spine X Live2D 百萬智多星製作經驗談
Spine X Live2D 百萬智多星製作經驗談Spine X Live2D 百萬智多星製作經驗談
Spine X Live2D 百萬智多星製作經驗談Scissor Lee
 
Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016Yellow Slice
 
English 10 unit 6 listening
English 10 unit 6  listeningEnglish 10 unit 6  listening
English 10 unit 6 listeningnganngoc84
 
trigonomery of right triangles
trigonomery of right trianglestrigonomery of right triangles
trigonomery of right triangleskatleho phatoli
 
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue1402 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14Akhil Bharat Mahasabha
 
SAP Business Object Material
SAP Business Object Material SAP Business Object Material
SAP Business Object Material erpsoln
 

Andere mochten auch (17)

Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作る
 
ArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろう
 
Pagination Done the Right Way
Pagination Done the Right WayPagination Done the Right Way
Pagination Done the Right Way
 
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミング
 
Introduction to Chainer: A Flexible Framework for Deep Learning
Introduction to Chainer: A Flexible Framework for Deep LearningIntroduction to Chainer: A Flexible Framework for Deep Learning
Introduction to Chainer: A Flexible Framework for Deep Learning
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Sales presentation market explore-english
Sales presentation   market explore-englishSales presentation   market explore-english
Sales presentation market explore-english
 
Introduction of hey chongqing!
Introduction of hey chongqing!Introduction of hey chongqing!
Introduction of hey chongqing!
 
Aula 1 a obra de kant como síntese do nascente pensamento burguês
Aula 1   a obra de kant como síntese do nascente pensamento burguêsAula 1   a obra de kant como síntese do nascente pensamento burguês
Aula 1 a obra de kant como síntese do nascente pensamento burguês
 
Spine X Live2D 百萬智多星製作經驗談
Spine X Live2D 百萬智多星製作經驗談Spine X Live2D 百萬智多星製作經驗談
Spine X Live2D 百萬智多星製作經驗談
 
Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016Yellow Slice Design Profile - 2016
Yellow Slice Design Profile - 2016
 
English 10 unit 6 listening
English 10 unit 6  listeningEnglish 10 unit 6  listening
English 10 unit 6 listening
 
trigonomery of right triangles
trigonomery of right trianglestrigonomery of right triangles
trigonomery of right triangles
 
Sun & VMware Desktop Training
Sun & VMware Desktop TrainingSun & VMware Desktop Training
Sun & VMware Desktop Training
 
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue1402 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14
02 july-2014 to-08-july-2014-hindu_sabhavarta_year38_issue14
 
SAP Business Object Material
SAP Business Object Material SAP Business Object Material
SAP Business Object Material
 

Ähnlich wie PySynth : A toy pure python software synthesizer.

Nimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewNimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewSoftvelum
 
uRock @ Jserv Course Final
uRock @ Jserv Course Final uRock @ Jserv Course Final
uRock @ Jserv Course Final 宗凡 楊
 
Mpeg For The Media Sonic Players
Mpeg For The Media Sonic PlayersMpeg For The Media Sonic Players
Mpeg For The Media Sonic Playersguest78aa88
 
Music in the Metaverse
Music in the MetaverseMusic in the Metaverse
Music in the MetaverseRichard Elen
 
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Unity Technologies
 
Digital recording
Digital recordingDigital recording
Digital recordinggps2012
 
Mpeg 101 demyst analysis & picture symptoms 20110808 opt
Mpeg 101 demyst analysis & picture symptoms 20110808 optMpeg 101 demyst analysis & picture symptoms 20110808 opt
Mpeg 101 demyst analysis & picture symptoms 20110808 opthexiay
 
Digital Hymnals: Exploring the Capabilities of QuickTime Pro
Digital Hymnals: Exploring the Capabilities of QuickTime ProDigital Hymnals: Exploring the Capabilities of QuickTime Pro
Digital Hymnals: Exploring the Capabilities of QuickTime ProMichael Labay
 
Roland R-88: 8-Channel Recorder and Mixer
Roland R-88: 8-Channel Recorder and MixerRoland R-88: 8-Channel Recorder and Mixer
Roland R-88: 8-Channel Recorder and MixerRoland Professional A/V
 
Dsp
DspDsp
Dspncct
 
OpenPipe at FOSDEM 2013
OpenPipe at FOSDEM 2013OpenPipe at FOSDEM 2013
OpenPipe at FOSDEM 2013xulioc
 
02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.pptBABUE7
 
Dsp
DspDsp
Dspncct
 

Ähnlich wie PySynth : A toy pure python software synthesizer. (20)

Nimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewNimble Streamer Transcoder overview
Nimble Streamer Transcoder overview
 
uRock @ Jserv Course Final
uRock @ Jserv Course Final uRock @ Jserv Course Final
uRock @ Jserv Course Final
 
Mpeg For The Media Sonic Players
Mpeg For The Media Sonic PlayersMpeg For The Media Sonic Players
Mpeg For The Media Sonic Players
 
Music in the Metaverse
Music in the MetaverseMusic in the Metaverse
Music in the Metaverse
 
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
 
Digital recording
Digital recordingDigital recording
Digital recording
 
Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
 
CHAP2.pptx
CHAP2.pptxCHAP2.pptx
CHAP2.pptx
 
Mpeg 101 demyst analysis & picture symptoms 20110808 opt
Mpeg 101 demyst analysis & picture symptoms 20110808 optMpeg 101 demyst analysis & picture symptoms 20110808 opt
Mpeg 101 demyst analysis & picture symptoms 20110808 opt
 
I pod presentation
I pod presentationI pod presentation
I pod presentation
 
Digital Hymnals: Exploring the Capabilities of QuickTime Pro
Digital Hymnals: Exploring the Capabilities of QuickTime ProDigital Hymnals: Exploring the Capabilities of QuickTime Pro
Digital Hymnals: Exploring the Capabilities of QuickTime Pro
 
Roland R-88: 8-Channel Recorder and Mixer
Roland R-88: 8-Channel Recorder and MixerRoland R-88: 8-Channel Recorder and Mixer
Roland R-88: 8-Channel Recorder and Mixer
 
Dsp
DspDsp
Dsp
 
OpenPipe at FOSDEM 2013
OpenPipe at FOSDEM 2013OpenPipe at FOSDEM 2013
OpenPipe at FOSDEM 2013
 
Microcontroller 8051 gs
Microcontroller 8051 gsMicrocontroller 8051 gs
Microcontroller 8051 gs
 
Pro tools HD Systems
Pro tools HD SystemsPro tools HD Systems
Pro tools HD Systems
 
02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt02 - About Motherboard and its Types.ppt
02 - About Motherboard and its Types.ppt
 
Dsp
DspDsp
Dsp
 
Task 3
Task 3Task 3
Task 3
 
I pod new
I pod newI pod new
I pod new
 

Mehr von Ransui Iso

「Pythonでやってみた」~広がるプログラミングの愉しみ~
「Pythonでやってみた」~広がるプログラミングの愉しみ~「Pythonでやってみた」~広がるプログラミングの愉しみ~
「Pythonでやってみた」~広がるプログラミングの愉しみ~Ransui Iso
 
アドテクを支える人と技術
アドテクを支える人と技術アドテクを支える人と技術
アドテクを支える人と技術Ransui Iso
 
Playing with curses
Playing with cursesPlaying with curses
Playing with cursesRansui Iso
 
小中学生Hack-a-thonにオッサンが乗り込んだ話
小中学生Hack-a-thonにオッサンが乗り込んだ話小中学生Hack-a-thonにオッサンが乗り込んだ話
小中学生Hack-a-thonにオッサンが乗り込んだ話Ransui Iso
 
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由Ransui Iso
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Ransui Iso
 
Lisp Tutorial for Pythonista : Day 5
Lisp Tutorial for Pythonista : Day 5Lisp Tutorial for Pythonista : Day 5
Lisp Tutorial for Pythonista : Day 5Ransui Iso
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Ransui Iso
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Ransui Iso
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 

Mehr von Ransui Iso (11)

「Pythonでやってみた」~広がるプログラミングの愉しみ~
「Pythonでやってみた」~広がるプログラミングの愉しみ~「Pythonでやってみた」~広がるプログラミングの愉しみ~
「Pythonでやってみた」~広がるプログラミングの愉しみ~
 
アドテクを支える人と技術
アドテクを支える人と技術アドテクを支える人と技術
アドテクを支える人と技術
 
Playing with curses
Playing with cursesPlaying with curses
Playing with curses
 
小中学生Hack-a-thonにオッサンが乗り込んだ話
小中学生Hack-a-thonにオッサンが乗り込んだ話小中学生Hack-a-thonにオッサンが乗り込んだ話
小中学生Hack-a-thonにオッサンが乗り込んだ話
 
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
 
Lisp Tutorial for Pythonista : Day 5
Lisp Tutorial for Pythonista : Day 5Lisp Tutorial for Pythonista : Day 5
Lisp Tutorial for Pythonista : Day 5
 
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 

Kürzlich hochgeladen

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Kürzlich hochgeladen (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

PySynth : A toy pure python software synthesizer.

  • 1. Pure Python Software synthesizer 2011-06-11 Python mini Hack-a-thon #9 at gumi
  • 2. Who are you? Ransui Iso @ X-Listing. I'm Common Lisper, But use python heavily.
  • 3. I like Chip-Tune Music very much. Modern DTM system generates very rich sound, but the system can't generate PIKO-PIKO sound well.
  • 4. So, I made a toy software synthesizer to generate PIKO-PIKO sound.
  • 5. It generates PSG like square-wave sound. PSG is 'Programmable Sound Generator”, which has been commonly use for computer and game music In 1980's
  • 6. Square-wave form is good for PIKO-PIKO sound
  • 7. Architecture of Synthesizer Oscillator Oscillator MML Mixer Interpreter Oscillator Oscillator Raw PCM binary data
  • 8. Music Macro Language ● Musical notation scores can translate to MML. ● Note : CDEFGAB and R ● + as #, - as ♭ ● Musical Control ● Tempo T ● Volume V ● Octave O ● Default key on length L
  • 9. How to generate MML to PCM data MML String Tokenizer Notation Generator Sequence of Square Wave Note instance Generator RAW PCM Binary data.
  • 10. Splitted output module Software Synthesizer FIFO Output Driver Software PyQt Qt Layer QtMultimedia OS Layer ALSA DIrectSound Esound, etc...
  • 11. Let's see the code! You can find the python source code at pasetebin. Raw PCM data generator : http://pastebin.com/h2fxLACS Sound Output Program : http://pastebin.com/gf0SXULY
  • 13. Thank you for LISTNING Happy Hacking!!