{"id":27941195,"url":"https://github.com/yeeking/oto-sequencer","last_synced_at":"2025-07-07T12:06:24.930Z","repository":{"id":46110343,"uuid":"269935700","full_name":"yeeking/oto-sequencer","owner":"yeeking","description":"A MIDI sequencer. Runs on raspberry pi, written in C++","archived":false,"fork":false,"pushed_at":"2024-04-05T14:48:05.000Z","size":441,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T10:43:43.355Z","etag":null,"topics":["midi"],"latest_commit_sha":null,"homepage":"http://www.yeeking.net","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yeeking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2020-06-06T09:43:47.000Z","updated_at":"2022-10-12T21:04:30.000Z","dependencies_parsed_at":"2024-04-05T15:56:31.474Z","dependency_job_id":null,"html_url":"https://github.com/yeeking/oto-sequencer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yeeking/oto-sequencer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeeking%2Foto-sequencer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeeking%2Foto-sequencer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeeking%2Foto-sequencer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeeking%2Foto-sequencer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yeeking","download_url":"https://codeload.github.com/yeeking/oto-sequencer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeeking%2Foto-sequencer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264075409,"owners_count":23553507,"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":["midi"],"created_at":"2025-05-07T10:38:22.607Z","updated_at":"2025-07-07T12:06:24.909Z","avatar_url":"https://github.com/yeeking.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oto-sequencer\n\nA sound sequencer. Runs on raspberry pi and regular linux computers.  \n\nTo build, first set up the cmake stuff:\n```\n   mkdir build\n   cd build\n   cmake ..\n```\n\nOn normal linux or raspi linux without grove sensors:\n\n```\n  make oto-sequencer\n  ./oto-sequencer\n```\n\n\nOn raspberry pi (using grove sensors):\n```\n   make oto-sequencer-pi\n   ./oto-sequencer-pi\n```\n\n\n## Keys\n\nIn all modes:\n\n* q: quit \n* -: go slower\n* =: go faster\n\nIn step overview mode:\n\n* Cursor keys:  move the cursor to the desired step\n* Computer keyboard piano keys: set note for step under cursor \n* Enter: go into single step edit mode\n* Tab: go to sequence overview mode\n\nIn step edit mode:\n* Cursor left and right: select field to edit\n* Computer keyboard piano keys: set note for step under cursor \n* Cursor up and down: set fieid's value\n* Space: toggle active/ inactive step\n* Enter: exit to step overview mode\n \nIn sequence overview mode:\n* Cursor left and right: change sequence length\n* Cursor up and down: select sequence\n* Enter: go into sequence config mode\n\nIn sequencer config mode:\n* Cursor left and right: set sequence type\n* Cursor up and down: set sequence channel\n\n\n## Using the sequencer\n\nHere follows a description of how to use the sequencer with screenshots of the various modes.\n\n### Select midi input\n\nWhen it starts you will see a list of available midi outs:\n\n```\n    Output port #0: Midi Through:Midi Through Port-0 14:0\n    Output port #1: Pure Data:Pure Data Midi-In 1 128:0\n\n  Choose a port number: \n```\nIf you wanted Pure Data in that list, you would press '1'. \n\n### Note off on all channels\n\nNext it will send note offs for all notes on all channels, in case you have any stuck notes. \n\n### Step editor view\n\nNow you will see the step editor view:\n\n```\n    1 -I...............             0\n    2 --...............             \n    3 --...............             \n    4 --...............  \n```\n\nPut a note in using the computer keyboard as a mini piano, mapped like this:\n\n```\n{ 'z', 60},\n{ 's', 61},\n{ 'x', 62},\n{ 'd', 63},\n{ 'c', 64},\n{ 'f', 65},\n{ 'v', 66},\n{ 'b', 67},\n{ 'h', 68},\n{ 'n', 69},\n{ 'j', 70},\n{ 'm', 71}\n```\n\nPress return and you can edit the note, length and velocity. \n\n```\nO n:0 [l:0] v:0 \n```\n\nn: note 0-127, l: length in steps, v: velocity 0-127\n\nThe 'O' at the start indicates that this step is active. Press space to toggle that. \n\nPress return to exit the note edit mode and back out to steps overview. \n\n### Sequencer edit mode\n\nPress TAB when in steps overview to go into sequencer view. Here you can change the length and type of sequences. \n\n```\n1 -I\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e             0\n2 --\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e             \n3 --\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e             \n4 --\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e   \n```\nUse up and down to move between sequences. Use left and right to change sequence length. \n\nPress return to enter sequencer config screen. \n\n```\nc:0 t:midi\n```\nc: channel, t: type\n\nc:0 t:midi means send notes on MIDI channel 1. \n\nChange the channel with the up and down keys. Change the type with left and right. \nOther types:\n* transpose: transpose the sequence on channel 'c' by this number of steps\n* length: change the length of the sequence on channel 'c' by the step's amount\n\ntranspose and length changes are reset by the target sequence each time it hits its first step.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeeking%2Foto-sequencer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyeeking%2Foto-sequencer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeeking%2Foto-sequencer/lists"}