https://github.com/timjjting/ptt-sounds
The frontend of the project Ptt-sounds. Ptt-sounds is a project turns (composes) emotional words from users of PTT into audible frequencies.
https://github.com/timjjting/ptt-sounds
audio bootstrap4 frontend ptt vue-router vuejs
Last synced: 4 months ago
JSON representation
The frontend of the project Ptt-sounds. Ptt-sounds is a project turns (composes) emotional words from users of PTT into audible frequencies.
- Host: GitHub
- URL: https://github.com/timjjting/ptt-sounds
- Owner: TimJJTing
- Created: 2019-01-06T17:19:38.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-09T16:47:15.000Z (almost 7 years ago)
- Last Synced: 2025-05-14T12:57:12.606Z (7 months ago)
- Topics: audio, bootstrap4, frontend, ptt, vue-router, vuejs
- Language: JavaScript
- Homepage: https://timjjting.github.io/ptt-sounds/
- Size: 668 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sounds of PTT
Sounds of PTT is a web application that can turn an article on PTT into audible frequencies.
## Idea
[PTT](https://www.ptt.cc/bbs/index.html) is the most popular BBS in Taiwan, where one can find the public’s opinion for almost any given topic. With public’s opinion structuralized in a series of short comments and “push/boo” tags, one can read through the discussion thread to catch the public’s sentiment orientations of a topic.
However, reading is not the only way we sense this universe. Just like this [inspiring project](https://www.nasa.gov/feature/goddard/2018/sounds-of-the-sun) by NASA, what if we could actually “hear” public's sentiment orientations? Does it feel different from reading? Can we compose meaningful sounds from public's opinions? Will a positive rated article sounds better than a negative rated article? If the author and commenters of an article start a band, how will their music sound like? This web application is designed to answer these questions.
## How It Works in General
A User first enters a PTT article URL in the \[Frontend\]. When the \[Backend API\] receives a valid PTT article URL, it dispatches a \[Crawler\], which crawls and re-structuralizes article contents for the \[Sound Maker\]. The \[Sound Maker\] then can process structuralized data with 3 steps, tokenization, quantization (based on sentiment polarity of words), and finally sonification. After the procedure is done, a media file will be generated and therefore can be referenced via the \[Frontend\].
## Technology Used
### Frontend
- Vue.js
- Vue router
- Bootstrap
### Backend
#### Hosting/Environment
- Google Cloud Compute Engine
- Docker-Compose
#### Web Server
- Nginx
#### API
- Django
- Django rest framework
- Celery
#### Crawler
- Scrapy/Scrapinghub
#### Sound Maker
##### Tokenization
- pandas
- jseg/jieba
##### Quantization
- numpy
- ANTUSD
##### Sonification
- thinkdsp (with some customized code)
#### Database
- Postgresql
#### Messaging/Cache Backend
- Redis
## TODOs
### High Priority
- \[General\] Finish the README.md
- \[General\] Push backend codes to GitHub
- \[Frontend\] Redesign component hierarchy
- \[Backend-API\] Reduce restart loading time
- \[Backend-API\] Deal with warning messages
### Medium Priority
- \[Backend-DB\] Migrate from container to Cloud SQL instance
- \[Backend-API\] Serve backend static and media files with Cloud Storage buckets
### Low Priority
- \[Backend-Hosting\] Migrate from Nginx to Google's load balancer service
### Might Be A Good Idea To Do
- \[Frontend\] An interface that controls ADSR via the ADSR API to change the timbre of sounds
- \[Frontend\] Timbre customization interfaces
- \[Frontend\] Real-time Audio-visual feature with p5.js or d3.js
## Credits
### Inspiration and Acknowledgements
- [Sounds of the Sun](https://www.nasa.gov/feature/goddard/2018/sounds-of-the-sun)
- [Prof. Feng-Yang Kuo](https://www.mis.nsysu.edu.tw/~bkuo/)
- [Yen-tzu Chang](http://www.changyentzu.com/)
### Resources
- [Allen B. Downey](https://github.com/AllenDowney/ThinkDSP): The author of Think DSP, an awesome book for learning digital signal processing.
- [NLPSA](http://academiasinicanlplab.github.io/): Where I acquire ANTUSD for this project.
- [Jseg](https://github.com/amigcamel/Jseg): A better choice for Chinese tokenization in this project.
### References
- [Dockerizing a Full-stack Application](https://medium.com/@matthew.rosendin/dockerizing-a-full-stack-application-89a7d69e11e9)
- [nginx配置location总结及rewrite规则写法](http://seanlook.com/2015/05/17/nginx-location-rewrite/)
- [Voltage-Controlled Oscillator (VCO)](http://synthesizeracademy.com/voltage-controlled-oscillator-vco/)
- [Setup caching in Django With Redis](https://boostlog.io/@nixus89896/setup-caching-in-django-with-redis-5abb7d060814730093a2eebe)
- [Wave Generation in Python](http://blog.acipo.com/wave-generation-in-python/)