{"id":15400769,"url":"https://github.com/agraef/raptor","last_synced_at":"2025-04-16T02:26:51.623Z","repository":{"id":81375747,"uuid":"116883585","full_name":"agraef/raptor","owner":"agraef","description":"Raptor, the random arpeggiator (real-time algorithmic composition program implemented as a Pd patch)","archived":false,"fork":false,"pushed_at":"2018-01-12T22:46:35.000Z","size":236,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T04:11:22.852Z","etag":null,"topics":["computer-music","puredata"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agraef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2018-01-09T23:41:16.000Z","updated_at":"2023-08-21T05:44:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa0224d8-3a28-4159-b07c-b9eb89c01508","html_url":"https://github.com/agraef/raptor","commit_stats":{"total_commits":79,"total_committers":1,"mean_commits":79.0,"dds":0.0,"last_synced_commit":"fa15679c0c7d495bdc843b2e68bb1c6feec60d3b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fraptor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fraptor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fraptor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fraptor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agraef","download_url":"https://codeload.github.com/agraef/raptor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249184212,"owners_count":21226327,"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":["computer-music","puredata"],"created_at":"2024-10-01T15:54:54.092Z","updated_at":"2025-04-16T02:26:51.587Z","avatar_url":"https://github.com/agraef.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Raptor 5: The Random Arpeggiator\n================================\n\nAlbert Gräf \u003caggraef@gmail.com\u003e  \nComputer Music Research Group  \nJohannes Gutenberg University (JGU) Mainz, Germany\n\nThe Raptors.pd patch implements an experimental algorithmic composition\narpeggiator program with 3 parts (i.e., 3 Raptor instances running in\nparallel, each with their own set of parameters). A few sample presets are\nincluded in the presets folder, and you can use the raptor-preset subpatch (in\nthe lower left corner of the main patch) to switch between these. This\nsubpatch also has some controls to change meter and tempo.\n\nThe patch accepts MIDI note input, as well as controller and system realtime\nmessages for the most important controls as detailed below. The controller\nassignments should be convenient to use with popular modern MIDI controllers\nfeaturing keys, pads and rotary controllers, such as the Akai MPK mini, or\nmore \"classic\" equipment like the Behringer controllers.\n\nThe actual algorithmic core of Raptor is implemented as a Pd external written\nin Pure, see the raptor.pure program. Thus in addition to Miller Puckette's Pd\nyou'll also need the author's Pure plugin loader for Pd (pd-pure) to run it.\nAny recent version and flavour of Pd will do; see \u003chttp://puredata.info/\u003e. The\nauthor's Pure programming language and the pd-pure plugin loader can be found\nat \u003chttps://agraef.github.io/pure-lang/\u003e. We also provide ready-made packages of\npd-pure for Linux (Arch, Ubuntu and derivatives) and macOS (via [MacPorts][]),\nplease refer to the link above for details. Mac users may also want to check\nthe [Pure on Mac OS X][] wiki page for detailed instructions.\n\n[MacPorts]: http://www.macports.org/\n[Pure on Mac OS X]: https://github.com/agraef/pure-lang/wiki/PureOnMacOSX\n\n## Copying\n\nCopyright (c) 2005-2018 by Albert Gräf.\n\nRaptor is free software: you can redistribute it and/or modify it under the\nterms of the GNU General Public License as published by the Free Software\nFoundation, either version 3 of the License, or (at your option) any later\nversion.\n\nRaptor is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\nA PARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with\nthis program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n## Changing Presets, Tempo and Meter\n\nThe main Raptors patch has a raptor-preset subpatch offering controls to\nchange presets, meter and tempo in a convenient fashion.\n\nThe preset-changing control is the radio button strip in the right upper\ncorner of the subpatch. Simply click on one of the radio buttons to change the\npreset. This will affect all three parts. Note that currently the preset names\nfor the different parts are hard-wired, so in order to change these you'll\nhave to open the subpatch and edit the patch accordingly. Also note that once\nthe patch and the initial presets have been loaded, subsequently switching\npresets will *not* affect the tempo and meter any more, so that these can be\nchanged freely with the other controls in the subpatch, see below. However, it\nis possible to force tempo and meter settings to be loaded from a preset. To\ndo this, press and hold the Ctrl key (or click the red button in the lower\nright corner of the subpatch) and then choose the preset you want to load by\nclicking on the corresponding radio button as usual.\n\nThe remaining controls in the subpatch provide a way to set tempo and meter in\na convenient fashion that will be familiar to musicians.\n\nThe tempo (in BPM a.k.a. beats per minute) can be changed using the slider or\nthe number entry widget in the bottom row of the subpatch. By default, in\ntempo calculations a \"beat\" is taken to mean a quarter note. The actual\nfrequency of base pulses in the chosen meter then is m/4 times the BPM\nvalue, where m is the denominator of the meter (see below).\n\nThe meter can be changed with the three strips of radio buttons in the middle\nof the subpatch. The *green* strip changes the *numerator* (number of base\npulses), the *red* strip the *denominator* (unit of the base pulses) and the\n*white* strip the *subdivision* of the meter (tuplets). The latter setting\napplies a heuristic which lets you play tuplets of the given kind (1\nindicating no subdivision, 2 duplets, 3 triplets, etc., up to 7-tuplets)\nwithout changing the basic meter and tempo.\n\nNB: Raptor's tuplet heuristic isn't perfect and in some corner cases only\ncalculates a rough approximation which is expressible as a Raptor meter in the\nformat discussed below. In particular, you should make sure that the tuplet's\nreal length (which is 3 in the case of duplets and quadruplets, 2 in the case\nof triplets and 4 in the case of 5-, 6- and 7-tuplets) divides the number of\nbase pulses, otherwise the numerator of the resulting meter will be rounded\ndown to the nearest integer. For complicated meters it is often easier to get\nwhat you want by adjusting tempo and meter directly, using the input format\nfor meters discussed below.\n\nIn any case, the resulting meter is displayed in the symbol entry widget above\nthe white strip of radio buttons. The symbol box can also be used to just\ndirectly enter the desired meter. The format used by Raptor allows you to\nspecify a meter using the customary n/m notation where n denotes the numerator\n(the number of base pulses making up a measure) and m the denominator (unit of\nthe base pulse) of the meter. The latter is usually a power of 2, but Raptor\nallows you to use any positive integer there, which is useful when tuplets are\nthe base pulse of the meter. Moreover, the numerator n can also be specified\nin *stratified* form by explicitly listing the decomposition of the meter into\ndifferent levels separated by dashes. E.g., 12/16 can also be specified as\n4-3/16 or 2-2-3/16. Or you could write 6-2/16 or 2-3-2/16 to denote a 6/8\nmeter subdivided into 16th notes. Likewise, a 6/8 meter subdivided into\ntriplets would be specified as 18/24, 6-3/24 or 2-3-3/24.\n\nIf you don't specify a stratified meter, Raptor does the stratification\ninternally anyway, by decomposing the numerator into its prime factors in\nascending order. Finally, if the denominator m is omitted, Raptor chooses the\npower of 2 which is closest to the numerator as a reasonable default, so that\nin most cases you can also just specify the (unstratified or stratified)\nnumerator of the meter. E.g., 2 becomes 2/2, 3 becomes 3/4, 9 becomes 3-3/8,\n12 becomes 2-2-3/16, 2-3-2 becomes 2-3-2/16, etc.\n\nOne important limitation to keep in mind is that Raptor only supports integer\n(non-fractional) components in both the numerator and denominator of the meter\nright now. As already mentioned, this affects, in particular, the tuplet\nheuristic. The default meter shown initially in the raptor-preset patch is 4/4\n(common time) a.k.a. 2-2/4, but note that this may be overridden by the preset\nloaded at startup. The raptor-preset patch always changes tempo and meter for\nall Raptor parts simultaneously. However, it is also possible to change meter\nand tempo (and even the definition of a \"beat\") by changing the corresponding\nfields in each individual Raptor part. This makes things much more complicated\nand will only be needed in special situations; in particular, it allows you to\nconfigure polyrhythms in Raptor, which isn't possible possible with just the\nraptor-preset patch.\n\n## Editing Presets\n\nYou can click the Edit button in each of the three Raptor parts to open the\ncorresponding subpatch, which will give you a bunch of additional control\nparameters which can be changed to affect Raptor's operation. (A more detailed\ndescription of the parameters is beyond the scope of this document, so we\nrefer the reader to the raptor.pure script instead.)\n\nOnce you have changed the parameters to your liking, you can close the\nsubpatch and click the Save button to write your changes to the corresponding\npreset file. You can also use the SaveAs button if you want to save the\nsettings in a new preset file instead, or use the Load button to load a\ndifferent preset file.\n\n## Performance Controls\n\nIn addition, each Raptor part also has a few special toggles visible in the\nmain patch which are typically used in real-time during performance:\n\n- \"Mute\" (abbreviated \"M\") silences one part, i.e., it suppresses note output\n  from that part (but not the metronome clicks, see \"Metronome\" below).\n\n- \"Hold\" (\"H\") provides a kind of ostinato effect in which input notes are\n  kept indefinitely. Raptor will then loop playing the same notes and chords\n  at random until \"Hold\" is switched off again.\n\n- \"Pause\" (\"P\") pauses a part until it is switched off again, at which point\n  the part resumes with the next pulse it was about to play when paused.\n  Parameter changes such as meter and tempo are still registered and will take\n  effect when the part resumes. This is typically applied to all parts\n  simultaneously, but if your timing is exact enough, you can also use this\n  with individual parts to achieve some interesting polyrhythmic effects.\n\nMuting individual parts can also be done with the F1, F2 and F3 keys, and you\ncan hold or pause all parts with the F5 and F6 keys, respectively. All these\nfunctions can also be controlled using various MIDI controllers. In\nparticular, the sustain pedal is by default assigned to the \"Hold\" function,\nbut can also be switched to \"Pause\" by pressing the F7 key (see \"Keyboard\nShortcuts\", \"Switches\" and \"Other Controllers\" below).\n\n## Transport and Sync\n\nThe \"controls\" subpatch in the upper right corner of the main patch has\n\"Start\" and \"Stop\" buttons which let you start and stop Raptor manually.\nThere's also a \"Reset\" button to reset all parts and have them reload their\ncurrent presets, as well as \"Hold\" and \"Pause\" toggles which control the\ncorresponding switches of all parts simultaneously (see above).\n\nRaptor can also be started and stopped remotely by sending it the appropriate\nsystem realtime messages (see \"Sequencer Messages\" below). However, the most\nconvenient option for remote control and automation is through Jack transport.\nRaptor then also picks up the current tempo and meter (if the host DAW\nprovides that information). The \"jack-transport\" patch in the bottom right\ncorner of the main patch lets you connect to Jack transport (red toggle), as\nwell as start and stop Jack transport and rewind to the initial Jack transport\nlocation. This requires the author's [pd-jacktime][] external to work. Two\nsuitable DAWs which have full support for Jack transport are [Ardour][]\n(available on Linux, Mac and Windows) and [Qtractor][] (Linux-only).\n\n[pd-jacktime]: https://github.com/agraef/pd-jacktime\n[Ardour]: https://ardour.org/\n[Qtractor]: https://qtractor.sourceforge.io/\n\n## Harmonicity Controls\n\nThe \"harm-sweep\" subpatch gives you direct access to various parameters\ncontrolling Raptor's note generation process. A discussion of these parameters\nis beyond the scope of this document, but in a nutshell, they are used to\ncontrol the degree of harmonicity in the generated notes. If the (minimum)\nharmonicity is high, the generated notes and chords will match the chords you\nplay on Raptor's MIDI input. Lowering the harmonicity gives the algorithm more\nleeway (for very low values you'll get complete atonality).\n\nIn addition, there's a preference parameter which controls how much Raptor\nwill prefer notes with a high degree of harmonicity (this works best if the\nminimum harmonicity is not too high, giving Raptor more freedom to choose\ndisharmonious notes). The preference value can also be negative, in which case\nRaptor will favor disharmonious rather than harmonious notes. Moreover, all\nthese parameters are also varied automatically according to pulse strengths,\nusing associated \"bias\" parameters (these aren't shown in the \"harm-sweep\"\nsubpatch, but can be edited in the different Raptor parts and are also\naccessible using corresponding MIDI controls, see below).\n\nThe subpatch also offers some controls to initiate automatic \"sweeps\" of the\nharmonicity and preference parameters, using the radio button strips at the\nbottom. All changes done in this subpatch apply only to the *active* part(s)\n(all, upper, lower or lead) set in the radio button strip on the right.\n\n## Keyboard Shortcuts\n\nRaptor provides some keyboard shortcuts (mostly function keys) to control the\nmost important functions of the patch. Note that to make these work, the patch\nmust have keyboard focus. F1, F2 and F3 will mute/unmute the corresponding\npart, F4 toggles the metronome clicks, F5 and F6 toggle the \"Hold\" and \"Pause\"\ncontrols of all parts, F7 switches the assignment of the sustain pedal (see\n\"Other Controllers\" below) between \"Hold\" and \"Pause\", F8 changes presets by\ncycling through them, and F9 starts and stops playback. Also, the cursor keys\non the numeric keypad let you control the harmonicity sweep functions in the\n\"harm-sweep\" subpatch.\n\n## Controller Assignments\n\n(e.g., K1-8 on Akai MPK mini)\n\n- CC1/CC5: Harmonicity/Bias\n- CC2/CC6: Preference/Bias\n- CC7: Volume\n- CC4/CC8: Density/Bias\n\nNote that Harmonicity/Preference/Density and the corresponding Bias controls\napply to the active part(s) set in the \"harm-sweep\" subpatch, see above. The\nVolume controller sets the corresponding controls in all parts and is also\npassed through to MIDI output. Also note that all these controls are reset\nwhen switching presets (see below).\n\n**FCB 1010 users:** The FCB 1010 has its *right* continuous controller pedal\nassigned to CC7 by default and can thus be used to control the Volume setting\nof all Raptor parts. You may want change this to match your preferences and\nplaying style. E.g., I have the FCB's left and right continuous controller\npedals (CC27 and CC7) assigned to CC1 and CC2, respectively, so that I can\ncontrol both the Harmonicity and Preference parameters of the active part(s)\nwhile playing. The controls can be remapped most conveniently by using some\nappropriate MIDI plugin inside a DAW (like pizmidi's midiConverter3), or a\nstand-alone MIDI filter/mapping software (like qmidiroute on Linux, MidiPipe\non the Mac,or MidiOx on Windows).\n\n## Switches\n\n(PAD1-8 on Akai MPK mini in CC mode)\n\n- CC20: Start/Stop\n- CC21: Metronome\n- CC22: Hold/Pause\n- CC23: Preset-\n- CC24: Mute 1\n- CC25: Mute 2\n- CC26: Mute 3\n- CC27: Preset+\n\nCC23 and CC27 work like push buttons (only react to \"on\" values), the others\nare toggles. Note that in contrast to standard MIDI semantics, *any* value \u003e0\nmeans \"on\" here; so velocity-sensitive buttons like on customary pad\ncontrollers should work fine. A suitable Akai MPK mini II configuration\nis included (Raptors.mk2). \n\n**FCB 1010 users:** The FCB 1010 has its *left* continuous controller pedal\nassigned to CC27 by default, which will wreak havoc with Raptor's preset\nsetting when you operate this controller. Thus you'll want to to reassign the\npedal to a different CC number (such as CC1, see above).\n\n## Program Changes\n\nThe presets #0-#4 can also be accessed directly through program changes (PC)\n1-5, which correspond to Pads 1-5 on Akai MPK mini in PROG CHANGE mode, and to\nfoot switches 1-5 on a Behringer FCB 1010 foot controller.\n\nPC changes will be taken modulo 5, i.e., they wrap around after PC 5, so they\nwill also work with the higher banks on the FCB 1010. To make this more\nuseful, Raptor actually implements four \"sets\" with different variations of the\npresets, which are identical to the original presets #0-#4 but with some parts\nmuted, as follows:\n\n- Set #0 (PC 1-5): all parts playing\n- Set #1 (PC 6-10): lead part (\"piano\") muted\n- Set #2 (PC 11-15): upper part (\"guitar\") muted\n- Set #3 (PC 16-20): lead and upper part muted (\"bass\" solo)\n- Set #4 (PC 21-25): all parts muted (no output from Raptor)\n\nAgain, these wrap around after set #4, so that higher banks of the FCB 1010\n(second row of FCB bank 02 and beyond) will simply cycle through Raptor\nsets #0-#4. Note that all this assumes the FCB 1010 default setup which has PC\n1-10 mapped out over its ten banks accessible with the Up/Down pedals.\n\n## Other Controllers\n\n- CC16 (0-4): Preset #0-#4 (alternative way to change presets, mainly useful\n  for automation)\n\n- CC64: Hold/Pause (sustain pedal)\n\n- CC80: Start/Stop (alternative way to control transport state, see below)\n\nNote that CC64 (the sustain pedal) and CC80 (general purpose button #1) are\ninterpreted using standard MIDI button semantics, so a value \u003e=64 means \"on\",\n\u003c64 \"off\".\n\nAlso note that all these settings are just examples tailored to the external\nMIDI gear and software applications that I use; you can customize these to\nyour heart's content (have a look at the midi-in subpatch of the controls\nsubpatch in the Raptors main patch).\n\n## Sequencer Messages\n\nIf you don't have Jack transport as a sync option available in your DAW, then\nRaptor's playback state can also be controlled through the usual system\nrealtime messages start/cont/stop. This should work with most popular DAWs.\n(Bitwig Studio and Reaper have been tested. Tracktion's system realtime\nimplementation seems to be broken, so you'll have to use the CC80 workaround\ndescribed below. YMMV, though.)\n\nTo synchronize Raptor with your DAW, it's usually sufficient to turn on MIDI\nclock sync in the DAW and make sure that the transport messages are delivered\nto Raptor (but see *Limitations/TODO* below for some caveats).\n\nIf your DAW doesn't support MIDI clock sync then you can also start/stop\nRaptor explicitly through a special controller message (CC80, see above).\nUse a CC80 value \u003e= 64 to start, \u003c64 to stop Raptor.\n\nNote that in any case Raptor keeps its own internal time, so it only\ninterprets system realtime messages controlling the transport state. Thus you\nhave to make sure that the DAW starts out at the beginning of a measure and\ntempo/meter settings match up with Raptor (or use Jack transport with a DAW\nthat emits real-time tempo and meter messages, such as Ardour).\n\n## OSC Support\n\nIn addition to MIDI, Raptor can also be controlled through OSC (including\nparameter feedback). This is bidirectional, so Raptor will feed control data\nback to the connected OSC device(s). A corresponding TouchOSC layout is\nincluded (Raptors.touchosc). The main patch also includes an OSC browser\nsubpatch which lets you detect and connect to OSC devices on the local network\n(either manually or through Zeroconf). Using Zeroconf, the Raptor patch is\nvisible to OSC devices as \"Raptor\".\n\nRaptor supports OSC natively (if you have the requisite mrpeach externals\ninstalled), so no MIDI bridge is needed. The Zeroconf support requires that\nyou have a corresponding system service running, usually Avahi on Linux, or\nBonjour on Mac OS X or Windows. Also note that in order to make OSC\ncommunication work, your local network must have the OSC UDP input and output\nports open, so you might have to configure the firewall on your local router\naccordingly.\n\nFor convenience, Raptor always connects to OSC (on the local UDP port given as\nthe argument of the oscbrowser abstraction) and starts browsing for possible\nOSC clients during startup (i.e., patch load time). The default input port is\n8000 which matches TouchOSC's default. If this interferes with other OSC\nreceiving software (such as OSCulator on the Mac) then you may want to change\nthe argument of oscbrowser to a different port number and reconfigure your OSC\ndevices accordingly.\n\nAlso, oscbrowser will auto-connect to the first available OSC client on the\nlocal network as soon as it finds one. If this isn't desired then you can turn\noscbrowser off and disconnect it by clicking the corresponding message in the\nmain patch. You can also use oscbrowser's next and prev controls to cycle\nthrough the list of all known OSC clients, or enter an IP address and port\nnumber and then push the conn button to connect Raptor to the given client.\nFinally, by clicking the \"connect 255.255.255.255\" message in the main window\nyou can have Raptor broadcast outgoing OSC messages to the local network, so\nthat any connected OSC client receives them. This is useful if you're running\nmultiple OSC devices on the same network. (You can adjust the outgoing port\nnumber in the message as needed. The default is 9000 which matches TouchOSC's\ndefault.)\n\n## Metronome\n\nRaptor optionally outputs a kind of metronome click in the chosen tempo and\nmeter, if you specify the number of clicks to emit per measure in the\nmetronome field of one of the parts (the sample presets all have this setting\nin the upper part). In the future we may turn this facility into a separate\nRaptor part providing a full-blown automatic drum sequencer, but for the time\nbeing the metronome is there mostly for the traditional purpose: to help you\nkeep the right tempo and rhythm while you play.\n\nThe metronome always outputs MIDI note 37 (Side Stick) with varying velocities\non MIDI channel 10 (the drum channel on GM devices) while Raptor is running,\nno matter whether the emitting part is currently muted or not. The velocities\nof the notes are set from Raptor's internal pulse strengths computed from the\nchosen meter, which are also used to determine the most prominent pulses at\nwhich the clicks should occur. All this happens automatically. To quickly\ntoggle the metronome click you can use one of the available controls (CC21 or\nfunction key F4 in Raptor's main window). To completely suppress the metronome\nclicks just filter out MIDI channel 10 in your DAW, or reset the metronome\nvalue to zero in the presets that you use.\n\nIf you change meters on the fly using the corresponding controls in the\nraptor-preset subpatch then the metronome field will be adjusted automatically\nas well (only in parts where it's nonzero already). Raptor picks a default\nwhich works reasonably well (half the number of base pulses in the meter plus\none in the current implementation).\n\n## Limitations/TODO\n\nBug reports and comments/suggestions are always appreciated, please mail me at\n\u003caggraef@gmail.com\u003e, submit an issue or drop me a pull request at Github.\n\nHere are some known issues and items on my wishlist:\n\n- At present you have to edit the raptor-preset subpatch in the main Raptor\n  patch to change the definitions of the presets. This really needs to be\n  replaced with a more generic system which allows switching between different\n  \"banks\" of preset collections (maybe also through a MIDI controller).\n\n- A MIDI mapping for the meter and tempo controls in the raptor-preset\n  subpatch is in order. (The TouchOSC layout already has some controls for\n  these parameters on its third page, though.)\n\n- Raptor's MIDI mapping is somewhat idiosyncratic, as it matches the specific\n  MIDI gear that I often use (most notably the AKAI MPKmini2 and the FCB\n  1010), so you may have to edit this in the \"midi-in\" subpatch inside the\n  \"controls\" subpatch. A MIDI learn capability would be nice to have in order\n  to simplify these kinds of adjustments.\n\n- SPP (song position pointer) and tempo sync through MIDI clock messages\n  aren't supported right now. Use Jack transport instead if you need that kind\n  of functionality.\n\n- Raptor keeps its own internal time, so there's the potential of Raptor's and\n  your DAW's time drifting away from each other. Pd's internal timing is\n  rock-solid, however, so normally this shouldn't be an issue if Jack\n  transport is used and your DAW properly communicates tempo and meter changes\n  (Ardour does).\n\n- While Raptor should be stable enough for stage usage, there are some obscure\n  situations in which its timing still goes bonkers and/or the different parts\n  fall out of sync. In particular, it's usually *not* a good idea to use\n  \"Reset\" or high-frequency tempo/meter changes during a live performance.\n  Another recipe for disaster is to use \"Pause\" when Raptor is driven by Jack\n  transport, unless *you* can keep time very accurately. If you avoid these\n  pitfalls then you should (mostly) be safe from such mishaps. If all else\n  fails, stop and reset Raptor, take a deep breath, and start over. :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fraptor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagraef%2Fraptor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fraptor/lists"}