{"id":15643666,"url":"https://github.com/patchworkboy/neotrellis-gate-sequencer","last_synced_at":"2025-04-09T08:26:21.863Z","repository":{"id":205528210,"uuid":"714406232","full_name":"PatchworkBoy/Neotrellis-Gate-Sequencer","owner":"PatchworkBoy","description":"An 8 track 32 step gate sequencer for Feather M4 Express / Neotrellis 8x8","archived":false,"fork":false,"pushed_at":"2023-12-07T21:16:57.000Z","size":195,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T02:41:36.226Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/PatchworkBoy.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}},"created_at":"2023-11-04T20:06:03.000Z","updated_at":"2023-11-06T22:47:33.000Z","dependencies_parsed_at":"2023-11-12T01:25:24.219Z","dependency_job_id":"d51d45dd-931d-4f9f-a23d-955ab4366cd0","html_url":"https://github.com/PatchworkBoy/Neotrellis-Gate-Sequencer","commit_stats":null,"previous_names":["patchworkboy/neotrellis-gate-sequencer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatchworkBoy%2FNeotrellis-Gate-Sequencer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatchworkBoy%2FNeotrellis-Gate-Sequencer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatchworkBoy%2FNeotrellis-Gate-Sequencer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatchworkBoy%2FNeotrellis-Gate-Sequencer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PatchworkBoy","download_url":"https://codeload.github.com/PatchworkBoy/Neotrellis-Gate-Sequencer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248001849,"owners_count":21031481,"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":[],"created_at":"2024-10-03T12:00:46.753Z","updated_at":"2025-04-09T08:26:21.837Z","avatar_url":"https://github.com/PatchworkBoy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neotrellis MIDI \u0026 Analogue CV/Gate Sequencer\n[![YouTube Demo Video](http://img.youtube.com/vi/L5sNkB95-T4/0.jpg)](http://www.youtube.com/watch?v=L5sNkB95-T4 \"Demo Video\")\n\nAn 8 track 32 step MIDI (over USB) \u0026 Analog note/modulation/gate/trigger sequencer with multi-mode arpeggiators available on 4 tracks, 2 tracks of Analog CV (control voltage) Output and MIDI Clock Generator (with swing) for Feather M4 Express / Neotrellis 8x8, featuring per-step per-track per-pattern note \u0026 velocity \u0026 probability \u0026 gatelength \u0026 per-track clock division layers, performance mutes and per-track loop-length (both start and endpoint) control.\n16 storable preset patterns per track (all layers stored). Customisable note-per-track (Trigger/Gate mode) and channel-per-track.\nTracks 5 thru 8 can be assigned as arpeggiators for live arpeggiation of incoming MIDI notes / chords.\n\nDesigned for use with the Adafruit 8x8 Neotrellis Feather M4 Kit, no additional hardware required - \n- US:  https://www.adafruit.com/product/1929\n- UK: https://thepihut.com/products/adafruit-untztrument-open-source-8x8-grid-controller-kit-8x8-white-leds\n\nAdapted from https://github.com/todbot/picostepseq/\n\n3 octave CV (v/oct, switchable to 2 octave Hz/V) Output for track 7 \u0026 8 on pins A0 \u0026 A1 when tracks in CC or NOTE.\nTrack 1-8 Gates always output on digital io pins D4/5/6/9/10/11/12/13 (sending a 0-3.2v trigger/gate).\n\nAnalog CV/Gate outputs are NOT regulated or protected in any way. Whack a 1k resistor between pin and 3.5mm TRS socket tip. Analog output is merely proof of concept. There's something squonky going on with the Feather M4's DACs (when used with my Neutron and K2) where they cannot hold an output voltage for long unless retriggered. Keep Release of your gates short, else you'll hear drift-down to 0v oddities.\n\n## INSTALLATION\n If, after uploading, your Neotrellis appears blank, it's because the Feather M4's QSPI Flash isn't formatted. Quickest way to do this is double tap the upload button so FEATHERBOOT shows up on your desktop, grab latest circuitpython UF2 (from https://circuitpython.org/board/feather_m4_express/) and throw that onto it and wait for board to reboot, then kick it back into upload mode with a button double tap, reupload the sequencer firmware via Arduino IDE. (CircuitPython install formats the flash by coincidence much quicker than doing the SDFat example)\n\n## NeoTrellis Surface\n\n[![Neotrellis Keys](https://apatchworkboy.com/wp-content/uploads/2023/12/Screenshot-2023-12-07-at-20.57.29.png)](https://apatchworkboy.com/wp-content/uploads/2023/12/Screenshot-2023-12-07-at-20.57.29.png)\n\n- Row 1 - 4: Steps 1 thru 32 (pattern edit: on/off, velocity edit: cycle thru velocity 40 / 80 / 127, Length: select end step, Probability: 10% - 100% in 10% increments)\n- Row 5: Track Select - Trk1 | Trk2 | Trk3 | Trk4 | Trk5 | Trk6 | Trk7 | Trk8\n- Row 6: Track Mutes - Trk1 | Trk2 | Trk3 | Trk4 | Trk5 | Trk6 | Trk7 | Trk8\n- Row 7: Pattern Edit | Velocity Edit | Probability Edit | Gate Length Edit | SHIFT (^) | Global Octave 0/+1/+2 (only while stopped) / ^ Channel Config (stopped) ? ^ Pattern Clock Division (running) | Loop-End / ^ Loop-Start | toggle step size - quarter / eighth / sixteenth / ^swing\n- Row 8: Toggle Play/Stop | Stop | Reset | SAVE | PRESETS / ^Factory Reset | MIDICLOCK Send On/Off | param - | param +\n\nPARAM -/+\n- Pattern Edit - param = tempo (unless track is in ARP mode), step = on/off\n- Velocity Edit - param = all velocities (+/- 10), step = step velocity cycle (40/180/127)\n- Probability Edit - param = all probabilities (+/- 10%), step = step probability cycle (+10%)\n- Gate Length Edit - param = all gate lengths (+/- 10%), step = gate length cycle (+10%)\n- SHIFT - param = note (+/- 1)\n- Swing (SHIFT + StepSize) - param = +/- 1% (30% max)\n\nPRESETS mode:\n- Row 1 \u0026 2 - change preset for selected track, 1-16\n- Row 3 \u0026 4 - change ALL tracks to selected preset, 1-16\n- SAVE: store all patterns, velocity, probability \u0026 gate length maps, current step-size, track notes, track midi channels and tempo to flash. DO NOT power down whilst saving. Wait for button to cycle from Red back to Cyan.\n- FACTORY RESET (SHIFT + Presets): resets all patterns \u0026 velocity \u0026 probability \u0026 gate maps (both in memory \u0026 on disk (flash)) to default, step size to sixteenths, tempo to 120, transpose to 0. DO NOT power down whilst saving. Wait for button to cycle from Red back to Cyan.\n\nCONFIG mode:\n- Row 1 \u0026 2 - set MIDI channel 1 to 16 for selected track\n- Row 4 - set selected tracks mode: Trigger/Gate, CC, NOTE, or ARP (buttons 1 - 4, ARP for trk 5 thru 8 only)\n- Row 4 - set v/oct (white) \u0026 hz/v (purple) when in NOTE or CC mode with button 8.\n\nAnalog gates are sent in all modes. Analog CV is sent only for track 7 \u0026 8 when in CC or NOTE mode.\n\nTrack Modes (over MIDI):\n- Trigger/Gate - Outputs fixed MIDI Note for all steps, Velocity, Gate On/Off\n- CC - Outputs CC, Value, Gate On/Off\n- NOTE - Outputs per-step note, Velocity, Gate On/Off\n- ARP - available on tracks 5 thru 8 - Outputs per-step note, Velocity, Gate On/Off \n\nFor the currently selected track...\n\nIn Trigger/Gate mode, with SHIFT toggled on, incoming MIDI is realtime mapped to step on/off.\n\nIn CC or NOTE mode, Velocity pane allows step selection... and then:\n\n - In CC mode, param +/- changes CC Value, and incoming MIDI note is captured to selected step as value. \n - In NOTE mode, param +/- changes Note, MIDI Input is captured to selected step (both velocity and note). Vel pane + SHIFT = MIDI Input is listened to and notes/velocity captured to current playing step in realtime.\n\n In ARP mode with SHIFT toggled on...\n - held incoming midi notes (played live via external source) are arpeggiated in accordance with chosen pattern over chosen number of octaves.\n - the arp engine's notestack can hold a maximum of 10 notes (cos 8 fingers, 2 thumbs). Once full, oldest note shuffles off the pile to make way for newest note.\n - On Pattern Edit view, param +/- cycles thru number of octaves (1-4)\n ...with SHIFT toggled off...\n - On Pattern Edit view, param +/- cycles thru patterns (1-7)\n\n Arp Patterns:\n - 1 - Up - Notes are played from lowest to highest\n - 2 - Down - Notes are played from highest to lowest\n - 3 - Inclusive - Notes are played from lowest to highest, then highest to lowest; the bottom and top notes are played twice\n - 4 - Exclusive - Notes are played from lowest to highest, then highest to lowest; the bottom and top notes are played only once\n - 5 - Outside In - Notes are played lowest then highest, then second lowest and second highest, and so forth until they meet in the middle\n - 6 - Order - Notes are played in the order that they come in\n - 7 - Random - Notes are played randomly\n\n To LATCH the arpeggio, change selected track then let go of the keys.\n Currently latched arpeggio will remain latched until you return to arpeggio track, put it in shift mode - it is now armed unlatch when you hit the next note / chord and start a new arpeggio. Each arpeggiator is clocked by the selected track's sequencer pattern, and respects all the layers (velocity / probability / gatelength) \u0026 any clock division. Each arpeggiator is independent, and can have it's own pattern and octave range.\n\n\nOutputs optional self-generated MIDI Clock (24 PPQN), Play/Stop/Reset (ideal for use in VCV rack with MIDI \u003e CV module)\n- Default BPM: 120, adjustable via param buttons in -/+ 1 increments. Swing (+/- 30% max) is also applied to clock output.\n- OR can be driven with a 24PPQN external midi clock (eg: Impromptu Clocked x24 to CV\u003eMIDI clock)\n\nDefault Mapping for VCVRack MIDI \u003e Gate module:\n- Trk1: Note C2 (36) - MIDI Ch1 (Analog gate on D4)\n- Trk2: Note C#2 (37) - MIDI Ch1 (Analog gate on D5)\n- Trk3: Note D2 (38) - MIDI Ch1 (Analog gate on D6)\n- Trk4: Note D#2 (39) - MIDI Ch1 (Analog gate on D9)\n- Trk5: Note E2 (40) - MIDI Ch2 (Analog gate on D10)\n- Trk6: Note F2 (41) - MIDI Ch3 (Analog gate on D11)\n- Trk7: Note F#2 (42) - MIDI Ch4 (Analog gate on D12, val as CV on A0)\n- Trk8: Note G2 (43) - MIDI Ch5 (Analog gate on D13, val as CV on A1)\n\n- Play: Note C0 (12) - MIDI Ch16\n- Stop: Note C#0 (13) - MIDI Ch16\n- Reset: Note D#0 (14) - MIDI Ch16\n\nEach track is transposable to set custom note (CC number in CC mode). Each track can be set to any MIDI Channel.\n\nOctave button globally shifts ALL track notes up +1ve or +2ve ON TOP of any existing per-track transposition.\n\nFAR from perfect. Open to improvements - throw me a pull request.\n\nTO DO:\n- CHORD mode\n- Song mode\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatchworkboy%2Fneotrellis-gate-sequencer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatchworkboy%2Fneotrellis-gate-sequencer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatchworkboy%2Fneotrellis-gate-sequencer/lists"}