Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
This is a brief description of the current ideas regarding scanner integration. The purpose of the scanner integration is to:
- Make it possible connect SBS standard tables with the Social Music Discovery database tables
- Make it possible to import tag information into the Social Music Discovery database tables
The general idea during scanning is:
- Standard SBS scanner will scan a music file
- The Social Music Discovery plugin will get a callback after the track has been stored in the standard SBS database tracks table
- In the callback, we will calculate a unique id for the music file. At the moment the plan is to calculate a SHA256 based on the audio bytes in the music file.
- The unique id will be stored in the tracks table in SBS database in a new column
Questions to answer:
- Should we use SHA256 for the unique id which is used in the relation between SBS database and Social Music Discovery database ?
- If SHA256 is selected, which implementation should we choose ?
- Should we use the interger based tracks.id column or the SHA256 column in database relations ? 1. Do we even need to join between the different databases ? 1. Is there a difference in performance when joining integer columns compared to varchar(64) columns ?
- How does an added track during SBS scanning affect our DB ?
- How does a removed track during SBS scanning affect our DB ?
- How does an updated track during SBS scanning affect our DB ?
- Do we need to be able to pre-calculate the unique id to improve performance of scanning on slow hardware ? * If it's needed we can implement a separate tool that calculates the id and stores it in a custom tag. The scanner can read the custom tag and use the id in it if it exists and only calculate if the custom tag isn't available. * We need to tool that can verify the id in the custom tag towards a newly calculated id based on the lastest audio data in the file