SlideShare a Scribd company logo
www.convergencejukebox.com
www.convergencejukebox.com
wallbox jukebox
arcade 8 jukebox - (macromedia movie!!!)
http://www.arcadejukebox.net
www.convergencejukebox.com
written in python 2.7
(cross platform) and
licensed with a GNU
V3 General Public
License
www.convergencejukebox.com
original usb keypads used in windows
version (with auto hotkey)
X-keys® XK-24 programmable keypad
http://xkeys.com
www.convergencejukebox.com
original installation 2013
weavefuture coin acceptor ak5
with usb jukebox interface board
http://www.weavefuture.com
christmas 2015
www.convergencejukebox.com
python code runs on windows and raspian wheezy
www.convergencejukebox.com
“just works” raspian image available for download
www.convergencejukebox.com
● three python programs.
○ convergencejukebox.py
■ ensures hardware is compatible.
■ initializes resolution, required folders, music and datafiles.
○ convergenceplayer.py
■ creates database of mp3 music.
■ plays music in endless loop.
○ convergencegui.py
■ graphical interface (TkInter).
■ user interface.
○ gui and player communicate by generating and reading data files.
how convergence jukebox works
www.convergencejukebox.com
● creates python list (array) of mp3’s.
○ each mp3 is assigned a number
○ most software manipulation involves mp3 number only.
how convergence jukebox works
www.convergencejukebox.com
● multiple display resolutions and skins.
● jukebox name or service at top of arch can be customized.
features
www.convergencejukebox.com
● unlimited mp3 library size.
● field version running over 10,000 mp3 files.
○ HP MINI 210 PC that contains an atom N450 processor, 1024
MB of memory and a 160.0 GB hard drive.
● raspberry pi versions running 9400 mp3 files
○ tested on raspberry pi 1 model B revision 2 with 512 MB ram, a
raspberry pi 2 and raspberry pi zero.
○ 64.0 GB SD card to hold music.
features
www.convergencejukebox.com
● automatic song detection.
○ MP3 library database is built automatically when additional
properly formed ID3 tagged files are added to the music folder
and the program is restarted.
○ see “building an mp3 library” on website
■ rejects mp3 if unicode in ID3 tag
■ eg. Motley Crue vs Mötley Crüe
■ ö - 19th letter of the Turkish alphabet
■ not ascii
features
www.convergencejukebox.com
features - ID3 tags (metadata engine)
www.convergencejukebox.com
features - ID3 tags (metadata engine)
● does not make use of genre tag to identify genre
o could not find standard to genre naming
o genre tag only allows for one genre
● Convergence Jukebox makes use of the Comments tag for Genre.
www.convergencejukebox.com
● background music system.
○ plays library loaded in jukebox in a continuous manner randomly.
● different styles of music.
○ mp3’s can be tagged with genres.
○ random play can be set to play specific genres by altering a simple text
file. (genre_flags.txt)
features
www.convergencejukebox.com
features
plays mp3’s tagged with classicrock, newwave, newcountry, modernrock and modernpop randomly first.
plays mp3’s by Frank Sinatra, Dean Martin, Sammy Davis, Paul Anka, Nancy Sinatra between the years of
1960 to 1969 randomly first.
www.convergencejukebox.com
● songs can be skipped.
○ "norandom" tags mean mp3 will never play randomly.
● avoids repeating the same songs continuously.
○ mp3’s on the random list are only played once during a random play
cycle.
● automatic resetting of random list.
○ random list is reset when the software is rebooted or all songs have been
played once randomly.
features
www.convergencejukebox.com
● clearly identified songs.
○ while song is playing, song title and artist are
displayed prominently under the jukebox
arch.
○ detailed song information is shown in the
green display
○ includes
■ year released
■ song length
■ album name
○ pulled from the ID3 tags.
features
www.convergencejukebox.com
● convergence jukebox plays paid songs as a
priority.
○ paid songs are listed as upcoming selections.
● users cannot select song if it’s on the upcoming
selections list.
● songs played via selection are removed from the
random playlist
● random play resumes once user selected songs
have completed playing.
● number of credits, cost per credit and the number
of songs available in the library are displayed.
features
www.convergencejukebox.com
● users navigate through music using
up/down/left/right keys.
● users can select navigation by either title or
artist.
● users can navigate to the alphabetical start of
either artist or title using letter keys that
employ multiple keypresses.
features
www.convergencejukebox.com
● log generation.
○ songs played randomly.
○ paid songs.
○ time jukebox is rebooted
○ when songs are added
○ when a new random list is generated.
● undocumented code
○ using dropbox folder to providing rss
feeds for digital signage systems.
○ to tweet to twitter accounts making the
jukebox useful as a global barker system.
features
www.convergencejukebox.com
● Hsaudiotag – reads mp3 ID3 tags.
● ctypes – used in Windows version to play mp3
files through Windows Media Control
Interface. (Thanks Jim Lawless)
● mpg321 – used to play mp3 in Raspberry Pi
(Wheezy) version.
● PyRSS2Gen – used to generate RSS feeds.
beyond the python standard library
github.com/bradfortner/convergence_jukebox
www.convergencejukebox.com
https://ca.linkedin.com/in/bfortner
www.bradfortner.com

More Related Content

More from Brad Fortner

Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
Brad Fortner
 
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
Brad Fortner
 
SMPTE Education Update: Education – Key To Member Value
 SMPTE Education Update: Education – Key To Member Value SMPTE Education Update: Education – Key To Member Value
SMPTE Education Update: Education – Key To Member Value
Brad Fortner
 
SMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
SMPTE Toronto Presentation - IPTV and Social Media On The TV IndustrySMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
SMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
Brad Fortner
 
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
Brad Fortner
 
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
Brad Fortner
 

More from Brad Fortner (6)

Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
 
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
SMPTE Toronto Presentation - Multi Camera High Definition TV Studio and Roger...
 
SMPTE Education Update: Education – Key To Member Value
 SMPTE Education Update: Education – Key To Member Value SMPTE Education Update: Education – Key To Member Value
SMPTE Education Update: Education – Key To Member Value
 
SMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
SMPTE Toronto Presentation - IPTV and Social Media On The TV IndustrySMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
SMPTE Toronto Presentation - IPTV and Social Media On The TV Industry
 
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
Interactive Content Authoring for A153 ATSC Mobile Digital Television Employi...
 
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...
 

Recently uploaded

5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf
devtomar25
 
Bayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptxBayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptx
amrita chaturvedi
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
um7474492
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
PIMR BHOPAL
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
Paris Salesforce Developer Group
 
Introduction to verilog basic modeling .ppt
Introduction to verilog basic modeling   .pptIntroduction to verilog basic modeling   .ppt
Introduction to verilog basic modeling .ppt
AmitKumar730022
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
CVCSOfficial
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
ijaia
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
cannyengineerings
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
bjmsejournal
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
RamonNovais6
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
nedcocy
 

Recently uploaded (20)

5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf
 
Bayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptxBayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptx
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
 
Introduction to verilog basic modeling .ppt
Introduction to verilog basic modeling   .pptIntroduction to verilog basic modeling   .ppt
Introduction to verilog basic modeling .ppt
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
 

Convergence Jukebox Overview Python Toronto Meetup May 2016