{"id":16302402,"url":"https://github.com/weisrc/fpga-maestro","last_synced_at":"2025-04-10T05:56:04.430Z","repository":{"id":135274858,"uuid":"568602742","full_name":"weisrc/fpga-maestro","owner":"weisrc","description":"MIDI file to code converter","archived":false,"fork":false,"pushed_at":"2022-11-21T20:25:52.000Z","size":183,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T19:24:51.327Z","etag":null,"topics":["fpga","midi","swrf"],"latest_commit_sha":null,"homepage":"https://weisrc.github.io/fpga-maestro/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weisrc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-21T02:10:11.000Z","updated_at":"2022-11-21T20:39:48.000Z","dependencies_parsed_at":"2023-04-26T10:08:28.689Z","dependency_job_id":null,"html_url":"https://github.com/weisrc/fpga-maestro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisrc%2Ffpga-maestro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisrc%2Ffpga-maestro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisrc%2Ffpga-maestro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisrc%2Ffpga-maestro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weisrc","download_url":"https://codeload.github.com/weisrc/fpga-maestro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166930,"owners_count":21058480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fpga","midi","swrf"],"created_at":"2024-10-10T20:57:21.509Z","updated_at":"2025-04-10T05:56:04.405Z","avatar_url":"https://github.com/weisrc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FPGA Maestro\n\nThe website is located at https://weisrc.github.io/fpga-maestro/.\n\nThis repository serves as a tool to help generate content for a project in Integrated Logic Circuit (Verilog + AMD Vivado Suite). \n\nIt also serves as an example of using https://github.com/weisrc/swrf without JSX with Vite. Functions heavily tested: `ref, fx, h`.\n\n## How to use\n\n1. Input a MIDI (.mid) file.\n2. Align the vertical black lines to the notes and rests using Ticks Per Unit input field.\n3. Copy column (channel) by clicking. The columns are further down below on the page.\n3. Paste the column into a memory file in Vivado.\n4. Use `$readmemb` Verilog macro to read and load the file into a 2D register vector. `reg [5:0] data [0, \u003clength of column - 1\u003e]`\n\nHow to use `$readmemb`: https://projectf.io/posts/initialize-memory-in-verilog/.\n\n## Parameters\n\n- Tick Offset, which tick to start.\n- Note Silence, silence in tick into the end of the note.\n- Ticks Per Unit, ticks per row in column.\n- Ticks Per Pixel, preview canvas scaling.\n\n## Disclaimer\n\nThis is a basic conversion software so it will not handle complicated MIDI files. Please use MIDI files that are derived from actual music sheets intended to be played on a piano by a person. The use of software generated MIDI files intenteded to be played by machines or a large group of people will result in suboptimal results.\n\n## Column Format\n\nSimple-to-implement, not-so-efficient-format.\n\n```sv\nwire [1:0] octave; // 0:3, 1:4, 2:5, 3:6\nwire [3:0] note; // 0:rest, 1:C, 2:C#, 3:D ... 12:B\nwire [5:0] row = {octave, note};\n```\n\n## License\n\nMIT. Wei (weisrc)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweisrc%2Ffpga-maestro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweisrc%2Ffpga-maestro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweisrc%2Ffpga-maestro/lists"}