├── .gitignore ├── LICENSE ├── README.md ├── overtone ├── CHANGELOG.md ├── LICENSE ├── README.md ├── algorithmuss.iml ├── doc │ └── intro.md ├── jack.sh ├── midi │ ├── better_blood.mid │ ├── better_blood.txt │ ├── blood.mid │ └── wink.mid ├── project.clj ├── src │ └── algorithmuss │ │ ├── autodub.clj │ │ ├── blood.clj │ │ ├── core.clj │ │ ├── drums.clj │ │ ├── funky.clj │ │ ├── giorgio.clj │ │ ├── halfstep.clj │ │ ├── instruments.clj │ │ ├── jazz.clj │ │ ├── melody.clj │ │ ├── nineeights.clj │ │ ├── rowrowrow.clj │ │ └── say.clj ├── target │ ├── classes │ │ └── META-INF │ │ │ └── maven │ │ │ └── algorithmuss │ │ │ └── algorithmuss │ │ │ └── pom.properties │ ├── native │ │ ├── linux │ │ │ ├── x86 │ │ │ │ └── .gitkeep │ │ │ └── x86_64 │ │ │ │ ├── .gitkeep │ │ │ │ ├── AY_UGen.so │ │ │ │ ├── AmbisonicUGens.so │ │ │ │ ├── AtkUGens.so │ │ │ │ ├── BBCut2UGens.so │ │ │ │ ├── BatPVUgens.so │ │ │ │ ├── BatUGens.so │ │ │ │ ├── BerlachUGens.so │ │ │ │ ├── BetablockerUGens.so │ │ │ │ ├── BhobChaos.so │ │ │ │ ├── BhobFFT.so │ │ │ │ ├── BhobFilt.so │ │ │ │ ├── BhobGrain.so │ │ │ │ ├── BhobNoise.so │ │ │ │ ├── BinaryOpUGens.so │ │ │ │ ├── BlackrainUGens.so │ │ │ │ ├── ChaosUGens.so │ │ │ │ ├── Concat.so │ │ │ │ ├── DelayUGens.so │ │ │ │ ├── DemandUGens.so │ │ │ │ ├── DiskIO_UGens.so │ │ │ │ ├── DistortionUGens.so │ │ │ │ ├── DynNoiseUGens.so │ │ │ │ ├── FFT_UGens.so │ │ │ │ ├── FilterUGens.so │ │ │ │ ├── GendynUGens.so │ │ │ │ ├── GlitchUGens.so │ │ │ │ ├── GrainUGens.so │ │ │ │ ├── IOUGens.so │ │ │ │ ├── JoshAmbiUGens.so │ │ │ │ ├── JoshGrainUGens.so │ │ │ │ ├── JoshPVUGens.so │ │ │ │ ├── JoshUGens.so │ │ │ │ ├── KeyboardUGens.so │ │ │ │ ├── LFUGens.so │ │ │ │ ├── LadspaUGen.so │ │ │ │ ├── LoopBuf.so │ │ │ │ ├── MCLDBufferUGens.so │ │ │ │ ├── MCLDCepstrumUGens.so │ │ │ │ ├── MCLDChaosUGens.so │ │ │ │ ├── MCLDDistortionUGens.so │ │ │ │ ├── MCLDFFTUGens.so │ │ │ │ ├── MCLDFilterUGens.so │ │ │ │ ├── MCLDGetenvUGen.so │ │ │ │ ├── MCLDOscUGens.so │ │ │ │ ├── MCLDPollUGens.so │ │ │ │ ├── MCLDSOMUGens.so │ │ │ │ ├── MCLDTreeUGens.so │ │ │ │ ├── MCLDTriggeredStatsUgens.so │ │ │ │ ├── ML_UGens.so │ │ │ │ ├── MdaUGens.so │ │ │ │ ├── MembraneUGens.so │ │ │ │ ├── MouseUGens.so │ │ │ │ ├── MulAddUGens.so │ │ │ │ ├── NCAnalysisUGens.so │ │ │ │ ├── NoiseUGens.so │ │ │ │ ├── OscUGens.so │ │ │ │ ├── PV_ThirdParty.so │ │ │ │ ├── PanUGens.so │ │ │ │ ├── PhysicalModelingUGens.so │ │ │ │ ├── PitchDetection.so │ │ │ │ ├── RFWUGens.so │ │ │ │ ├── RMEQSuite.so │ │ │ │ ├── ReverbUGens.so │ │ │ │ ├── SLUGens.so │ │ │ │ ├── StkUGens.so │ │ │ │ ├── SummerUGens.so │ │ │ │ ├── TJUGens.so │ │ │ │ ├── TagSystemUgens.so │ │ │ │ ├── TestUGens.so │ │ │ │ ├── TriggerUGens.so │ │ │ │ ├── UnaryOpUGens.so │ │ │ │ ├── UnpackFFTUGens.so │ │ │ │ ├── VBAP.so │ │ │ │ ├── VOSIM.so │ │ │ │ └── libscsynth.so │ │ ├── macosx │ │ │ ├── x86 │ │ │ │ ├── .gitkeep │ │ │ │ ├── BinaryOpUGens.scx │ │ │ │ ├── ChaosUGens.scx │ │ │ │ ├── DelayUGens.scx │ │ │ │ ├── DemandUGens.scx │ │ │ │ ├── DiskIO_UGens.scx │ │ │ │ ├── DynNoiseUGens.scx │ │ │ │ ├── FFT_UGens.scx │ │ │ │ ├── FilterUGens.scx │ │ │ │ ├── GendynUGens.scx │ │ │ │ ├── GrainUGens.scx │ │ │ │ ├── IOUGens.scx │ │ │ │ ├── KeyboardUGens.scx │ │ │ │ ├── LFUGens.scx │ │ │ │ ├── ML_UGens.scx │ │ │ │ ├── MouseUGens.scx │ │ │ │ ├── MulAddUGens.scx │ │ │ │ ├── NoiseUGens.scx │ │ │ │ ├── OscUGens.scx │ │ │ │ ├── PV_ThirdParty.scx │ │ │ │ ├── PanUGens.scx │ │ │ │ ├── PhysicalModelingUGens.scx │ │ │ │ ├── ReverbUGens.scx │ │ │ │ ├── TestUGens.scx │ │ │ │ ├── TriggerUGens.scx │ │ │ │ ├── UnaryOpUGens.scx │ │ │ │ ├── UnpackFFTUGens.scx │ │ │ │ └── libscsynth.dylib │ │ │ └── x86_64 │ │ │ │ ├── .gitkeep │ │ │ │ ├── AY_UGen.scx │ │ │ │ ├── AmbisonicUGens.scx │ │ │ │ ├── AtkUGens.scx │ │ │ │ ├── BBCut2UGens.scx │ │ │ │ ├── BatPVUgens.scx │ │ │ │ ├── BatUGens.scx │ │ │ │ ├── BerlachUGens.scx │ │ │ │ ├── BetablockerUGens.scx │ │ │ │ ├── BhobChaos.scx │ │ │ │ ├── BhobFFT.scx │ │ │ │ ├── BhobFilt.scx │ │ │ │ ├── BhobGrain.scx │ │ │ │ ├── BhobNoise.scx │ │ │ │ ├── BinaryOpUGens.scx │ │ │ │ ├── BlackrainUGens.scx │ │ │ │ ├── ChaosUGens.scx │ │ │ │ ├── Concat.scx │ │ │ │ ├── DelayUGens.scx │ │ │ │ ├── DemandUGens.scx │ │ │ │ ├── DiskIO_UGens.scx │ │ │ │ ├── DistortionUGens.scx │ │ │ │ ├── DynNoiseUGens.scx │ │ │ │ ├── FFT_UGens.scx │ │ │ │ ├── FilterUGens.scx │ │ │ │ ├── GendynUGens.scx │ │ │ │ ├── GlitchUGens.scx │ │ │ │ ├── GrainUGens.scx │ │ │ │ ├── IOUGens.scx │ │ │ │ ├── JoshAmbiUGens.scx │ │ │ │ ├── JoshGrainUGens.scx │ │ │ │ ├── JoshPVUGens.scx │ │ │ │ ├── JoshUGens.scx │ │ │ │ ├── KeyboardUGens.scx │ │ │ │ ├── LFUGens.scx │ │ │ │ ├── LadspaUGen.scx │ │ │ │ ├── LoopBuf.scx │ │ │ │ ├── MCLDBufferUGens.scx │ │ │ │ ├── MCLDCepstrumUGens.scx │ │ │ │ ├── MCLDChaosUGens.scx │ │ │ │ ├── MCLDDistortionUGens.scx │ │ │ │ ├── MCLDFFTUGens.scx │ │ │ │ ├── MCLDFilterUGens.scx │ │ │ │ ├── MCLDGetenvUGen.scx │ │ │ │ ├── MCLDOscUGens.scx │ │ │ │ ├── MCLDPollUGens.scx │ │ │ │ ├── MCLDSOMUGens.scx │ │ │ │ ├── MCLDTreeUGens.scx │ │ │ │ ├── MCLDTriggeredStatsUgens.scx │ │ │ │ ├── ML_UGens.scx │ │ │ │ ├── MdaUGens.scx │ │ │ │ ├── MembraneUGens.scx │ │ │ │ ├── MouseUGens.scx │ │ │ │ ├── MulAddUGens.scx │ │ │ │ ├── NCAnalysisUGens.scx │ │ │ │ ├── NoiseUGens.scx │ │ │ │ ├── OscUGens.scx │ │ │ │ ├── PV_ThirdParty.scx │ │ │ │ ├── PanUGens.scx │ │ │ │ ├── PhysicalModelingUGens.scx │ │ │ │ ├── PitchDetection.scx │ │ │ │ ├── RFWUGens.scx │ │ │ │ ├── RMEQSuite.scx │ │ │ │ ├── ReverbUGens.scx │ │ │ │ ├── SLUGens.scx │ │ │ │ ├── StkUGens.scx │ │ │ │ ├── SummerUGens.scx │ │ │ │ ├── TJUGens.scx │ │ │ │ ├── TagSystemUgens.scx │ │ │ │ ├── TestUGens.scx │ │ │ │ ├── TriggerUGens.scx │ │ │ │ ├── UnaryOpUGens.scx │ │ │ │ ├── UnpackFFTUGens.scx │ │ │ │ ├── VBAP.scx │ │ │ │ ├── VOSIM.scx │ │ │ │ └── libscsynth.dylib │ │ └── windows │ │ │ ├── x86 │ │ │ ├── .gitkeep │ │ │ ├── AY_UGen.scx │ │ │ ├── AmbisonicUGens.scx │ │ │ ├── AntiAliasingOscillators.scx │ │ │ ├── AtkUGens.scx │ │ │ ├── AuditoryModeling.scx │ │ │ ├── BBCut2UGens.scx │ │ │ ├── BatPVUgens.scx │ │ │ ├── BatUGens.scx │ │ │ ├── BerlachUGens.scx │ │ │ ├── BetablockerUGens.scx │ │ │ ├── BhobChaos.scx │ │ │ ├── BhobFFT.scx │ │ │ ├── BhobFilt.scx │ │ │ ├── BhobGrain.scx │ │ │ ├── BhobNoise.scx │ │ │ ├── BinaryOpUGens.scx │ │ │ ├── BlackrainUGens.scx │ │ │ ├── ChaosUGens.scx │ │ │ ├── Chromagram.scx │ │ │ ├── Concat.scx │ │ │ ├── DelayUGens.scx │ │ │ ├── DemandUGens.scx │ │ │ ├── DiskIO_UGens.scx │ │ │ ├── DistortionUGens.scx │ │ │ ├── DynNoiseUGens.scx │ │ │ ├── FFT_UGens.scx │ │ │ ├── FeatureSave.scx │ │ │ ├── FilterUGens.scx │ │ │ ├── GendynUGens.scx │ │ │ ├── GlitchUGens.scx │ │ │ ├── GrainUGens.scx │ │ │ ├── IOUGens.scx │ │ │ ├── JoshAmbiUGens.scx │ │ │ ├── JoshGrainUGens.scx │ │ │ ├── JoshPVUGens.scx │ │ │ ├── JoshUGens.scx │ │ │ ├── KeyboardUGens.scx │ │ │ ├── LFUGens.scx │ │ │ ├── LoopBuf.scx │ │ │ ├── MCLDBufferUGens.scx │ │ │ ├── MCLDCepstrumUGens.scx │ │ │ ├── MCLDChaosUGens.scx │ │ │ ├── MCLDDistortionUGens.scx │ │ │ ├── MCLDFFTUGens.scx │ │ │ ├── MCLDFilterUGens.scx │ │ │ ├── MCLDGetenvUGen.scx │ │ │ ├── MCLDOscUGens.scx │ │ │ ├── MCLDPollUGens.scx │ │ │ ├── MCLDSOMUGens.scx │ │ │ ├── MCLDTreeUGens.scx │ │ │ ├── MCLDTriggeredStatsUgens.scx │ │ │ ├── ML_UGens.scx │ │ │ ├── MdaUGens.scx │ │ │ ├── MembraneUGens.scx │ │ │ ├── MouseUGens.scx │ │ │ ├── MulAddUGens.scx │ │ │ ├── NCAnalysisUGens.scx │ │ │ ├── NoiseUGens.scx │ │ │ ├── OscUGens.scx │ │ │ ├── PV_ThirdParty.scx │ │ │ ├── PanUGens.scx │ │ │ ├── PhysicalModelingUGens.scx │ │ │ ├── PitchDetection.scx │ │ │ ├── RFWUGens.scx │ │ │ ├── RMEQSuite.scx │ │ │ ├── ReverbUGens.scx │ │ │ ├── SLUGens.scx │ │ │ ├── SensoryDissonance.scx │ │ │ ├── StkUGens.scx │ │ │ ├── SummerUGens.scx │ │ │ ├── TJUGens.scx │ │ │ ├── TagSystemUgens.scx │ │ │ ├── TestUGens.scx │ │ │ ├── TriggerUGens.scx │ │ │ ├── UnaryOpUGens.scx │ │ │ ├── UnpackFFTUGens.scx │ │ │ ├── VBAP.scx │ │ │ ├── VOSIM.scx │ │ │ ├── libfftw3f-3.dll │ │ │ ├── libgcc_s_dw2-1.dll │ │ │ ├── libportmidi.dll │ │ │ ├── libscsynth.dll │ │ │ ├── libsndfile-1.dll │ │ │ ├── mingwm10.dll │ │ │ ├── pthreadGC2.dll │ │ │ └── readline5.dll │ │ │ └── x86_64 │ │ │ └── .gitkeep │ ├── repl-port │ └── stale │ │ ├── extract-native.dependencies │ │ └── leiningen.core.classpath.extract-native-dependencies ├── test │ └── algorithmuss │ │ └── core_test.clj └── tools │ ├── ascmidi2notes.py │ ├── findscale.py │ ├── getscale.py │ ├── midi2clj.py │ └── midiconverter │ ├── Makefile │ ├── asc2mid.c │ ├── mid2asc.c │ └── midiasciiconversion.html ├── tidal ├── awesome.tidal ├── bjorklund.tidal ├── drumulous.tidal ├── dubbalicious.tidal ├── experiments.tidal ├── samba_for_the_salsa.tidal ├── striation.tidal ├── test.tidal └── tutorial.tidal └── visuals ├── .gitignore ├── HelloHylogen.hs ├── Poop.hs ├── Regenbogenkotze.hs ├── Spirangle.hs ├── Util.hs ├── package.yaml └── stack.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /classes 3 | /checkouts 4 | pom.xml 5 | pom.xml.asc 6 | *.jar 7 | *.class 8 | /.lein-* 9 | /.nrepl-port 10 | .hgignore 11 | .idea/ 12 | .*.swp 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Milan Gruner 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # algorithmuss 2 | Musical experiments in live coding, functional programming in Clojure and Haskell using TidalCycles, Overtone and/or Leipzig 3 | -------------------------------------------------------------------------------- /overtone/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/). 3 | 4 | ## [Unreleased] 5 | ### Changed 6 | - Add a new arity to `make-widget-async` to provide a different widget shape. 7 | 8 | ## [0.1.1] - 2017-03-11 9 | ### Changed 10 | - Documentation on how to make the widgets. 11 | 12 | ### Removed 13 | - `make-widget-sync` - we're all async, all the time. 14 | 15 | ### Fixed 16 | - Fixed widget maker to keep working when daylight savings switches over. 17 | 18 | ## 0.1.0 - 2017-03-11 19 | ### Added 20 | - Files from the new template. 21 | - Widget maker public API - `make-widget-sync`. 22 | 23 | [Unreleased]: https://github.com/your-name/algorithmuss/compare/0.1.1...HEAD 24 | [0.1.1]: https://github.com/your-name/algorithmuss/compare/0.1.0...0.1.1 25 | -------------------------------------------------------------------------------- /overtone/LICENSE: -------------------------------------------------------------------------------- 1 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC 2 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM 3 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 4 | 5 | 1. DEFINITIONS 6 | 7 | "Contribution" means: 8 | 9 | a) in the case of the initial Contributor, the initial code and 10 | documentation distributed under this Agreement, and 11 | 12 | b) in the case of each subsequent Contributor: 13 | 14 | i) changes to the Program, and 15 | 16 | ii) additions to the Program; 17 | 18 | where such changes and/or additions to the Program originate from and are 19 | distributed by that particular Contributor. A Contribution 'originates' from 20 | a Contributor if it was added to the Program by such Contributor itself or 21 | anyone acting on such Contributor's behalf. Contributions do not include 22 | additions to the Program which: (i) are separate modules of software 23 | distributed in conjunction with the Program under their own license 24 | agreement, and (ii) are not derivative works of the Program. 25 | 26 | "Contributor" means any person or entity that distributes the Program. 27 | 28 | "Licensed Patents" mean patent claims licensable by a Contributor which are 29 | necessarily infringed by the use or sale of its Contribution alone or when 30 | combined with the Program. 31 | 32 | "Program" means the Contributions distributed in accordance with this 33 | Agreement. 34 | 35 | "Recipient" means anyone who receives the Program under this Agreement, 36 | including all Contributors. 37 | 38 | 2. GRANT OF RIGHTS 39 | 40 | a) Subject to the terms of this Agreement, each Contributor hereby grants 41 | Recipient a non-exclusive, worldwide, royalty-free copyright license to 42 | reproduce, prepare derivative works of, publicly display, publicly perform, 43 | distribute and sublicense the Contribution of such Contributor, if any, and 44 | such derivative works, in source code and object code form. 45 | 46 | b) Subject to the terms of this Agreement, each Contributor hereby grants 47 | Recipient a non-exclusive, worldwide, royalty-free patent license under 48 | Licensed Patents to make, use, sell, offer to sell, import and otherwise 49 | transfer the Contribution of such Contributor, if any, in source code and 50 | object code form. This patent license shall apply to the combination of the 51 | Contribution and the Program if, at the time the Contribution is added by the 52 | Contributor, such addition of the Contribution causes such combination to be 53 | covered by the Licensed Patents. The patent license shall not apply to any 54 | other combinations which include the Contribution. No hardware per se is 55 | licensed hereunder. 56 | 57 | c) Recipient understands that although each Contributor grants the licenses 58 | to its Contributions set forth herein, no assurances are provided by any 59 | Contributor that the Program does not infringe the patent or other 60 | intellectual property rights of any other entity. Each Contributor disclaims 61 | any liability to Recipient for claims brought by any other entity based on 62 | infringement of intellectual property rights or otherwise. As a condition to 63 | exercising the rights and licenses granted hereunder, each Recipient hereby 64 | assumes sole responsibility to secure any other intellectual property rights 65 | needed, if any. For example, if a third party patent license is required to 66 | allow Recipient to distribute the Program, it is Recipient's responsibility 67 | to acquire that license before distributing the Program. 68 | 69 | d) Each Contributor represents that to its knowledge it has sufficient 70 | copyright rights in its Contribution, if any, to grant the copyright license 71 | set forth in this Agreement. 72 | 73 | 3. REQUIREMENTS 74 | 75 | A Contributor may choose to distribute the Program in object code form under 76 | its own license agreement, provided that: 77 | 78 | a) it complies with the terms and conditions of this Agreement; and 79 | 80 | b) its license agreement: 81 | 82 | i) effectively disclaims on behalf of all Contributors all warranties and 83 | conditions, express and implied, including warranties or conditions of title 84 | and non-infringement, and implied warranties or conditions of merchantability 85 | and fitness for a particular purpose; 86 | 87 | ii) effectively excludes on behalf of all Contributors all liability for 88 | damages, including direct, indirect, special, incidental and consequential 89 | damages, such as lost profits; 90 | 91 | iii) states that any provisions which differ from this Agreement are offered 92 | by that Contributor alone and not by any other party; and 93 | 94 | iv) states that source code for the Program is available from such 95 | Contributor, and informs licensees how to obtain it in a reasonable manner on 96 | or through a medium customarily used for software exchange. 97 | 98 | When the Program is made available in source code form: 99 | 100 | a) it must be made available under this Agreement; and 101 | 102 | b) a copy of this Agreement must be included with each copy of the Program. 103 | 104 | Contributors may not remove or alter any copyright notices contained within 105 | the Program. 106 | 107 | Each Contributor must identify itself as the originator of its Contribution, 108 | if any, in a manner that reasonably allows subsequent Recipients to identify 109 | the originator of the Contribution. 110 | 111 | 4. COMMERCIAL DISTRIBUTION 112 | 113 | Commercial distributors of software may accept certain responsibilities with 114 | respect to end users, business partners and the like. While this license is 115 | intended to facilitate the commercial use of the Program, the Contributor who 116 | includes the Program in a commercial product offering should do so in a 117 | manner which does not create potential liability for other Contributors. 118 | Therefore, if a Contributor includes the Program in a commercial product 119 | offering, such Contributor ("Commercial Contributor") hereby agrees to defend 120 | and indemnify every other Contributor ("Indemnified Contributor") against any 121 | losses, damages and costs (collectively "Losses") arising from claims, 122 | lawsuits and other legal actions brought by a third party against the 123 | Indemnified Contributor to the extent caused by the acts or omissions of such 124 | Commercial Contributor in connection with its distribution of the Program in 125 | a commercial product offering. The obligations in this section do not apply 126 | to any claims or Losses relating to any actual or alleged intellectual 127 | property infringement. In order to qualify, an Indemnified Contributor must: 128 | a) promptly notify the Commercial Contributor in writing of such claim, and 129 | b) allow the Commercial Contributor tocontrol, and cooperate with the 130 | Commercial Contributor in, the defense and any related settlement 131 | negotiations. The Indemnified Contributor may participate in any such claim 132 | at its own expense. 133 | 134 | For example, a Contributor might include the Program in a commercial product 135 | offering, Product X. That Contributor is then a Commercial Contributor. If 136 | that Commercial Contributor then makes performance claims, or offers 137 | warranties related to Product X, those performance claims and warranties are 138 | such Commercial Contributor's responsibility alone. Under this section, the 139 | Commercial Contributor would have to defend claims against the other 140 | Contributors related to those performance claims and warranties, and if a 141 | court requires any other Contributor to pay any damages as a result, the 142 | Commercial Contributor must pay those damages. 143 | 144 | 5. NO WARRANTY 145 | 146 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON 147 | AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER 148 | EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR 149 | CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A 150 | PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the 151 | appropriateness of using and distributing the Program and assumes all risks 152 | associated with its exercise of rights under this Agreement , including but 153 | not limited to the risks and costs of program errors, compliance with 154 | applicable laws, damage to or loss of data, programs or equipment, and 155 | unavailability or interruption of operations. 156 | 157 | 6. DISCLAIMER OF LIABILITY 158 | 159 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY 160 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, 161 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION 162 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 163 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 164 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 165 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 166 | OF SUCH DAMAGES. 167 | 168 | 7. GENERAL 169 | 170 | If any provision of this Agreement is invalid or unenforceable under 171 | applicable law, it shall not affect the validity or enforceability of the 172 | remainder of the terms of this Agreement, and without further action by the 173 | parties hereto, such provision shall be reformed to the minimum extent 174 | necessary to make such provision valid and enforceable. 175 | 176 | If Recipient institutes patent litigation against any entity (including a 177 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself 178 | (excluding combinations of the Program with other software or hardware) 179 | infringes such Recipient's patent(s), then such Recipient's rights granted 180 | under Section 2(b) shall terminate as of the date such litigation is filed. 181 | 182 | All Recipient's rights under this Agreement shall terminate if it fails to 183 | comply with any of the material terms or conditions of this Agreement and 184 | does not cure such failure in a reasonable period of time after becoming 185 | aware of such noncompliance. If all Recipient's rights under this Agreement 186 | terminate, Recipient agrees to cease use and distribution of the Program as 187 | soon as reasonably practicable. However, Recipient's obligations under this 188 | Agreement and any licenses granted by Recipient relating to the Program shall 189 | continue and survive. 190 | 191 | Everyone is permitted to copy and distribute copies of this Agreement, but in 192 | order to avoid inconsistency the Agreement is copyrighted and may only be 193 | modified in the following manner. The Agreement Steward reserves the right to 194 | publish new versions (including revisions) of this Agreement from time to 195 | time. No one other than the Agreement Steward has the right to modify this 196 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The 197 | Eclipse Foundation may assign the responsibility to serve as the Agreement 198 | Steward to a suitable separate entity. Each new version of the Agreement will 199 | be given a distinguishing version number. The Program (including 200 | Contributions) may always be distributed subject to the version of the 201 | Agreement under which it was received. In addition, after a new version of 202 | the Agreement is published, Contributor may elect to distribute the Program 203 | (including its Contributions) under the new version. Except as expressly 204 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or 205 | licenses to the intellectual property of any Contributor under this 206 | Agreement, whether expressly, by implication, estoppel or otherwise. All 207 | rights in the Program not expressly granted under this Agreement are 208 | reserved. 209 | 210 | This Agreement is governed by the laws of the State of New York and the 211 | intellectual property laws of the United States of America. No party to this 212 | Agreement will bring a legal action under this Agreement more than one year 213 | after the cause of action arose. Each party waives its rights to a jury trial 214 | in any resulting litigation. 215 | -------------------------------------------------------------------------------- /overtone/README.md: -------------------------------------------------------------------------------- 1 | # algorithmuss 2 | 3 | A Clojure library designed to ... well, that part is up to you. 4 | 5 | ## Usage 6 | 7 | FIXME 8 | 9 | ## License 10 | 11 | Copyright © 2017 FIXME 12 | 13 | Distributed under the Eclipse Public License either version 1.0 or (at 14 | your option) any later version. 15 | -------------------------------------------------------------------------------- /overtone/algorithmuss.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /overtone/doc/intro.md: -------------------------------------------------------------------------------- 1 | # Introduction to algorithmuss 2 | 3 | TODO: write [great documentation](http://jacobian.org/writing/what-to-write/) 4 | -------------------------------------------------------------------------------- /overtone/jack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | jackd -r -d alsa -r 44100 & 4 | -------------------------------------------------------------------------------- /overtone/midi/better_blood.mid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/midi/better_blood.mid -------------------------------------------------------------------------------- /overtone/midi/blood.mid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/midi/blood.mid -------------------------------------------------------------------------------- /overtone/midi/wink.mid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/midi/wink.mid -------------------------------------------------------------------------------- /overtone/project.clj: -------------------------------------------------------------------------------- 1 | (defproject algorithmuss "0.1.0-SNAPSHOT" 2 | :description "Music written in overtone and Leipzig by LeMilonkh" 3 | :url "http://github.com/lemilonkh/algorithmuss" 4 | :license {:name "MIT License" 5 | :url "https://opensource.org/licenses/MIT"} 6 | :dependencies [ 7 | [org.clojure/clojure "1.8.0"] 8 | [overtone "0.10.1"] 9 | [leipzig "0.10.0"]] 10 | :jvm-opts ^:replace [] 11 | :main algorithmuss.drums 12 | ) 13 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/autodub.clj: -------------------------------------------------------------------------------- 1 | ;; autodub.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "AlgorithMuss" 4 | 5 | (ns algorithmuss.autodub) 6 | 7 | (use 'overtone.live) 8 | 9 | (let [ 10 | bpm 120 11 | ;; create pool of notes as seed for random base line sequence 12 | notes [40 41 28 28 28 27 25 35 78] 13 | ;; create an impulse trigger firing once per bar 14 | trig (impulse:kr (/ bpm 120)) 15 | ;; create frequency generator for a randomly picked note 16 | freq (midicps (lag (demand trig 0 (dxrand notes INF)) 0.25)) 17 | ;; switch note durations 18 | swr (demand trig 0 (dseq [1 6 6 2 1 2 4 8 3 3] INF)) 19 | ;; create a sweep curve for filter below 20 | sweep (lin-exp (lf-tri swr) -1 1 40 3000) 21 | ;; create a slightly detuned stereo sawtooth oscillator 22 | wob (mix (saw (* freq [0.99 1.01]))) 23 | ;; apply low pass filter using sweep curve to control cutoff freq 24 | wob (lpf wob sweep) 25 | ;; normalize to 80% volume 26 | wob (* 0.8 (normalizer wob)) 27 | ;; apply band pass filter with resonance at 5kHz 28 | wob (+ wob (bpf wob 1500 2)) 29 | ;; mix in 20% reverb 30 | wob (+ wob (* 0.2 (g-verb wob 9 0.7 0.7))) 31 | 32 | ;; create impulse generator from given drum pattern 33 | kickenv (decay (t2a (demand (impulse:kr (/ bpm 30)) 0 (dseq [1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0] INF))) 0.7) 34 | ;; use modulated sine wave oscillator 35 | kick (* (* kickenv 7) (sin-osc (+ 40 (* kickenv kickenv kickenv 200)))) 36 | ;; clip at max volume to create distortion 37 | kick (clip2 kick 1) 38 | 39 | ;; snare is just using gated & over-amplified pink noise 40 | snare (* 3 (pink-noise) (apply + (* (decay (impulse (/ bpm 240) 0.5) [0.4 2]) [1 0.05]))) 41 | ;; send through band pass filter with peak @ 2kHz 42 | snare (+ snare (bpf (* 4 snare) 2000)) 43 | ;; also clip at max vol to distort 44 | snare (clip2 snare 1)] 45 | ;; mixdown & clip 46 | (clip2 (+ wob kick snare) 1)) 47 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/blood.clj: -------------------------------------------------------------------------------- 1 | ;; blood.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "AlgorithMuss" 4 | 5 | (ns algorithmuss.blood) 6 | (use 'overtone.live) 7 | (use 'overtone.inst.piano) 8 | 9 | (load "midi/midifile") 10 | (load "midi/midi_player") 11 | 12 | (def midi (song-from-file "midi/blood.mid")) 13 | (def song (song-with-instruments midi {"Track 1" piano}) 14 | 15 | ; Show available MIDI tracks 16 | ; (map :name (:tracks midi)) 17 | (def piano-play (midi-poly-player piano)) 18 | 19 | 20 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/core.clj: -------------------------------------------------------------------------------- 1 | ;; core.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "Algorithmuss" 4 | 5 | (ns algorithmuss.core) 6 | ;(:use [leipzig melody scale live] 7 | ; [overtone.inst.piano]) 8 | ;(:require [overtone.live :as overtone])) 9 | 10 | (use 'overtone.live) 11 | (use 'algorithmuss.instruments) 12 | (use 'algorithmuss.drums) 13 | 14 | ; Settings 15 | (def metro (metronome 140)) ; BPM 16 | 17 | ; melody 18 | (def scale-degrees [:i :ii :vi :vii :i+ :_ :vii# :_ :i+ :viib :vi :_ :vii :_]) 19 | (def scale-pitches (degrees->pitches scale-degrees :dorian :E4)) 20 | 21 | (defn play [beat notes sep] 22 | (let [note (first notes)] 23 | (when note 24 | (at (metro beat) 25 | ;(trem (midi->hz note) 10 3 1))) 26 | (saw (midi->hz note)))) 27 | (let [next-time (metro (+ beat sep))] 28 | (apply-at next-time play [next-time (rest notes) sep] [])))) 29 | 30 | ; beat 31 | (defn swinger [beat] 32 | (at (metro beat) (hihat 0.8 0.5)) 33 | (at (metro (inc beat)) (hihat 0.8 0.08)) 34 | (at (metro (+ 1.65 beat)) (hihat 0.8 0.08)) 35 | (apply-at (metro (+ 2 beat)) swinger (+ 2 beat) [])) 36 | 37 | (defn looper [nome sound] 38 | (let [beat (nome)] 39 | (at (nome beat) (sound)) 40 | (apply-at (nome (inc beat)) looper [nome sound] []))) 41 | 42 | (defn -main [] 43 | (println "Hello overtone!")) 44 | 45 | (swinger (metro)) 46 | (play (metro) scale-pitches 1) 47 | ;(looper metro kick) 48 | ;(stop) 49 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/drums.clj: -------------------------------------------------------------------------------- 1 | ;; drums.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "Algorithmuss" 4 | 5 | (ns algorithmuss.drums) 6 | 7 | (use 'overtone.live) 8 | (use 'overtone.inst.drum) 9 | 10 | ; Settings 11 | (def metro (metronome 165)) ; BPM 12 | 13 | ; Instruments 14 | (definst mykick "Kick drum" [amp 0.7 t 0.01 env-len 0.01] 15 | (let [ 16 | env (env-gen (perc env-len t) 1 1 0 1 FREE) 17 | kick-sample (sample (freesound-path 2086)) 18 | sqr (* (env-gen (perc env-len 0.04)) (pulse 120 0.2)) 19 | filt (lpf (+ sqr kick-sample) 120)] 20 | (* amp env filt))) 21 | 22 | (definst hihat [amp 0.8 t 0.04] 23 | (let [ 24 | env (env-gen (perc 0.001 t) 1 1 0 1 FREE) 25 | noise (white-noise) 26 | sqr (* (env-gen (perc 0.01 0.04)) (pulse 880 0.2)) 27 | filt (bpf (+ sqr noise) 9000 0.5)] 28 | (* amp env filt))) 29 | 30 | ; beat 31 | (defn rhythm [beat] 32 | (at (metro beat) (hihat 0.8 0.5)) 33 | (at (metro (inc beat)) (kick 0.8 0.08)) 34 | (at (metro (+ 1.65 beat)) (hihat 0.8 0.08)) 35 | (apply-at (metro (+ 2 beat)) rhythm (+ 2 beat) [])) 36 | 37 | (defn halfstep [beat] 38 | (at (metro (+ 0 beat)) (kick 1.0 0.08)) 39 | (at (metro (+ 1.5 beat)) (kick 1.0 0.08)) 40 | (at (metro (+ 2 beat)) (snare 1.0 0.08)) 41 | (at (metro (+ 4 beat)) (kick 1.0 0.08)) 42 | (at (metro (+ 6 beat)) (snare 1.0 0.08)) 43 | (apply-at (metro (+ 8 beat)) halfstep (+ 8 beat) [])) 44 | 45 | 46 | (halfstep (metro)) 47 | ;(rhythm (metro)) 48 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/funky.clj: -------------------------------------------------------------------------------- 1 | ;; funky.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "AlgorithMuss" 4 | 5 | (ns algorithmuss.funky 6 | (:use [leipzig melody] 7 | [overtone.live] 8 | [overtone.inst.piano] 9 | [algorithmuss.instruments]) 10 | (:require 11 | [leipzig.scale :as scale] 12 | [leipzig.live :as live] 13 | [leipzig.temperament :as temperament])) 14 | 15 | (def funky 16 | (->> (phrase [2 1/2 1/2 1/2 2.5 1/2 1/2 1/2 2.5 1/2 1/2 1/2 2.5 1 1] 17 | [0 -1 0 2 -3 -4 -3 -1 -5 -6 -5 -3 -7 -6 -5]) 18 | (where :pitch (comp scale/G scale/minor)) 19 | (all :part :funky) 20 | (all :amp 1))) 21 | 22 | (defmethod live/play-note :funky [{hertz :pitch seconds :duration amp :amp}] 23 | (when hertz (funky :freq hertz :dur seconds :amp (or amp 1)))) 24 | 25 | (->> funky 26 | (wherever :pitch, :pitch temperament/equal) 27 | (tempo (bpm 120)) 28 | live/play) 29 | 30 | 31 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/giorgio.clj: -------------------------------------------------------------------------------- 1 | (ns algorithmuss.giorgio) 2 | 3 | (use 'overtone.live) 4 | 5 | (defsynth saw-wave [freq 440 attack 0.01 sustain 0.03 release 0.1 amp 0.8 out-bus 0] 6 | (let [env (env-gen (lin attack sustain release) 1 1 0 1 FREE) 7 | src (mix (saw [freq (* 1.01 freq)])) 8 | src (lpf src (mouse-y 100 2000)) 9 | sin (sin-osc (* 2 freq)) 10 | sin2 (sin-osc freq) 11 | src (mix [src sin sin2])] 12 | (out out-bus (* src env amp)))) 13 | 14 | (defonce saw-b (audio-bus)) 15 | 16 | (defsynth fx [in-bus 0] 17 | (out 0 (pan2 (g-verb (in in-bus) 20 0.5)))) 18 | 19 | (def fx-s (fx :tgt (foundation-safe-post-default-group) :in-bus saw-b)) 20 | (kill fx-s) 21 | 22 | (defn saw2 [music-note] 23 | (saw-wave (midi->hz music-note) :out-bus saw-b)) 24 | 25 | (definst tick [freq 560 dur 0.1 width 0.5] 26 | (let [freq-env (* freq (env-gen (perc 0 (* 0.99 dur)))) 27 | env (env-gen (perc 0.01 dur) 1 1 0 1 FREE) 28 | sqr (* (env-gen (perc 0 0.001)) (pulse (* 2 freq) width)) 29 | src (sin-osc freq-env) 30 | drum (+ sqr (* env src))] 31 | (hpf (compander drum drum 0.2 0.3 0.01 0.1 0.01) (mouse-x 200 1000)))) 32 | 33 | (tick) 34 | 35 | (def repetition-sub-a (map note [:C5, :A3, :B4, :A3, :C5, :E5, :A3, :A4, :C5, :A3, :B4, :A3, :C5, :A4])) 36 | (def repetition-a (concat (map note [:A4, :A3]) repetition-sub-a (map note [:A3, :A4]) repetition-sub-a)) 37 | 38 | (def repetition-b (map note [:F4, :F4, :A4, :F4, :G4, :F4, :A4, :C5, :F4, :F4, :A4, :F4, :G4, :F4, :A4, :F4])) 39 | 40 | ;; slight variation of the above with different distances between the 2nd and 3rd note 41 | (def repetition-b3 (map note [:E4, :E4, :G4, :E4, :F#3, :E4, :G4, :B4, :E4, :E4, :G4, :E4, :F#3, :E4, :G4, :E4])) 42 | 43 | (defn transpose [updown notes] 44 | (map #(+ updown %1) notes)) 45 | 46 | (def theme (concat 47 | repetition-a 48 | (transpose -5 repetition-a) 49 | repetition-a 50 | (transpose -5 repetition-a) 51 | repetition-b 52 | (transpose 2 repetition-b) 53 | (transpose -2 repetition-b3) 54 | repetition-b3 55 | repetition-b 56 | (transpose 2 repetition-b) 57 | repetition-b3 58 | repetition-b3)) 59 | 60 | (def score (concat 61 | (concat (drop-last theme) [(note :A4)]) 62 | theme 63 | (concat (drop-last theme) [(note :A4)]) 64 | (concat (drop-last theme) [(note :A4)]))) 65 | 66 | (def metro (metronome (* 4 113))) 67 | (metro) 68 | 69 | (defn saw-player 70 | [beat notes multiplier] 71 | (let [n (first notes) 72 | notes (next notes) 73 | next-beat (inc beat)] 74 | (when n 75 | (at (metro beat) 76 | (saw2 n)) 77 | (apply-at (metro next-beat) #'saw-player [next-beat notes multiplier]) 78 | ))) 79 | 80 | (defn tick-player 81 | [beat multiplier count] 82 | (at (metro beat) (tick)) 83 | (when (> count 0 ) (apply-at (metro (+ multiplier beat)) #'tick-player [(+ multiplier beat) multiplier (dec count)])) 84 | ) 85 | 86 | (saw-player (metro) repetition-a 1) 87 | (saw-player (metro) repetition-b 1) 88 | (saw-player (metro) (transpose 12 repetition-a) 1) 89 | 90 | (tick-player (metro) 4 8) 91 | (saw-player (metro) score 1) 92 | 93 | (defn startplay [] 94 | (tick-player (metro) 4 8) 95 | (saw-player (+ (metro) 32) score 1)) 96 | 97 | (startplay) 98 | (stop) 99 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/halfstep.clj: -------------------------------------------------------------------------------- 1 | ;; halfstep.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Half-step dubstep rhythm 4 | ;; Original idea by Darkraqqen 5 | 6 | (ns algorithmuss.halfstep 7 | (:require 8 | [overtone.live :refer :all] 9 | [leipzig.live :as live] 10 | [leipzig.melody :refer :all] 11 | [overtone.inst.drum :as drums])) 12 | 13 | ; Load drum kit 14 | (def kit { 15 | :kick drums/kick2 16 | :snare drums/snare 17 | :closed-hat drums/closed-hat 18 | :open-hat drums/open-hat }) 19 | 20 | ; Drum kit player 21 | (defmethod live/play-note :beat [note] 22 | (when-let [fn (-> (get kit (:drum note)) :sound)] 23 | (fn :amp (:amp note)))) 24 | 25 | ; Helper for programming drum sequences 26 | (defn drum [drum times length & {:keys [amp] :or {amp 1}}] 27 | (map #(zipmap [:time :duration :drum :amp] 28 | [%1 (- length %1) drum amp]) times)) 29 | 30 | ; Half step beat 31 | (def halfstep 32 | (->> 33 | (reduce with [ 34 | (drum :kick [0/8 3/8 8/8] 2) 35 | (drum :snare [4/8 12/8] 2)]) 36 | ;(drum :closed-hat (sort (concat [3.75 7.75] (range 1/2 8 1))) 8) 37 | (all :part :beat))) 38 | 39 | ; Play it! 40 | (->> halfstep 41 | (tempo (bpm 110)) 42 | live/play) 43 | 44 | ;(live/jam (var halfstep)) -------------------------------------------------------------------------------- /overtone/src/algorithmuss/instruments.clj: -------------------------------------------------------------------------------- 1 | ;; instruments.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "AlgorithMuss" 4 | 5 | (ns algorithmuss.instruments) 6 | (use 'overtone.live) 7 | 8 | (definst funky [freq 440 dur 1.0 amp 1.0 cutoff 2200 boost 12 dist-level 0.015] 9 | (let [env (env-gen (adsr 0.3 0.7 0.5 0.3) (line:kr 1.0 0.0 dur) :action FREE) 10 | level (+ (* freq 0.25) 11 | (env-gen (adsr 0.5 0.3 1 0.5) (line:kr 1.0 0.0 (/ dur 2)) :level-scale cutoff)) 12 | osc (mix [ 13 | (saw freq) 14 | (saw (* freq 0.7491535384383409))])] 15 | (-> osc 16 | (bpf level 0.6) 17 | (* env amp) 18 | pan2 19 | (clip2 dist-level) 20 | (* boost) 21 | distort))) 22 | 23 | (definst trem "Tremolo saw" [freq 440 depth 10 rate 6 length 3] 24 | (* 0.3 25 | (line:kr 0 1 length FREE) 26 | (saw (+ freq (* depth (sin-osc:kr rate 0 1 0)))))) 27 | 28 | 29 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/jazz.clj: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ;; A kind of jazz music ;; 3 | ;; By Mikkel Gravgaard, 2012 ;; 4 | ;; ;; 5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 6 | 7 | (ns ^:hw overtone.examples.compositions.jazz 8 | (:use [overtone.live] 9 | [overtone.inst.drum] 10 | [overtone.inst.synth] 11 | [overtone.examples.compositions.rotater])) 12 | 13 | (remove-event-handler :breakbeat-handler) 14 | 15 | ;; just a simple example of a synth 16 | ;; we'll use this together with the bass 17 | (definst beep [note 60] 18 | (let 19 | [src (sin-osc (midicps note)) 20 | env (env-gen (perc 0.01 0.9) :action FREE)] 21 | (* src env))) 22 | 23 | ;; drums 24 | (def ride (sample (freesound-path 436))) 25 | 26 | (def cymbal (sample (freesound-path 13254))) 27 | 28 | (def snap (sample (freesound-path 87731))) 29 | 30 | ;; swing 31 | (defn offnote? [time] 32 | (= (mod time 1 ) 0.5)) 33 | 34 | (defn swing [time] 35 | (if (offnote? time) 36 | (+ time 0.2) 37 | time)) 38 | 39 | (def tempo 160) 40 | 41 | (def metro (metronome tempo)) 42 | 43 | (defn play-bar [bar-beat bar] 44 | (doseq [hit (bar)] 45 | (let [hit-time (swing (first hit)) 46 | instr (second hit)] 47 | (at (metro (+ bar-beat hit-time)) 48 | (instr))))) 49 | 50 | (defn loop-play [bar len] 51 | (let [beat (metro)] 52 | (play-bar beat bar) 53 | (apply-by (metro (+ len beat)) #'loop-play [bar len]))) 54 | 55 | (def length 4) 56 | 57 | (defn jazzdrums 58 | [] 59 | ;; filter out all nils 60 | (filter #(not (nil? %)) 61 | (concat 62 | ;; ride on every beat 63 | (map (fn [t] [t ride]) (range 0 length)) 64 | ;; off-beat ride 65 | (map #(when (< (rand) 0.3) [% ride]) (range 0.5 length)) 66 | 67 | ;; snaps on every other beat 68 | ;; the snaps are a bit late, subtract a bit to get them on time 69 | (map (fn [t] [(- t 0.02) snap]) (range 1 length 2)) 70 | 71 | ;; off-beat snare once in a while 72 | (map #(when (< (rand) 0.1) [% snare]) (range 0.5 length)) 73 | 74 | ;; 'hit' consisting of cymbal+kick at some random off-beat 75 | ;; doing it this way allows us to place two drums on same beat 76 | (when (< (rand) 0.1) 77 | (let [t (+ 0.5 (rand-int length))] 78 | (list [t kick] [t cymbal]))) 79 | ))) 80 | 81 | (defn limit [n minimum maximum] 82 | (max minimum 83 | (min maximum n))) 84 | 85 | (def jazz-intervals '(-7 -6 -5 5 6 7)) 86 | (def maxbass 40) 87 | (def minbass 65) 88 | 89 | 90 | (defn jazzbass 91 | ([] (let [start-note 45 92 | beat (metro) 93 | next-even (if (zero? (mod beat 2)) 94 | beat 95 | (inc beat))] 96 | (apply-by (metro next-even) (jazzbass start-note)))) 97 | ([n] 98 | (let [beat (metro) 99 | tick (metro beat) 100 | note (if (not (zero? (mod beat 2))) 101 | ;; just go half a step down 102 | (dec n) 103 | ;; keep tone inside interval 104 | ;; TODO - avoid hanging around at the limits 105 | (limit (+ n (rand-nth jazz-intervals)) maxbass minbass))] 106 | (at tick 107 | (beep note) 108 | (bass (midi->hz note))) 109 | ;; extra off-beat note with same tone 110 | (when (> 0.1 (rand)) 111 | (at (metro (+ beat (swing 0.5)) ) 112 | (beep note) 113 | (bass (midi->hz note)))) 114 | (apply-by (metro (+ beat 1)) #'jazzbass [note])))) 115 | 116 | 117 | ;; Set up rotater 118 | 119 | (def device-filter [ :midi-device "Novation DMS Ltd" "Launchpad" "Launchpad"]) 120 | 121 | 122 | (on-event (conj device-filter :note-on) 123 | (fn [e] 124 | (rotater e 0)) 125 | :handle-rotate-on) 126 | 127 | (on-event (conj device-filter :note-off) 128 | (fn [e] 129 | (rotater e 0)) 130 | :handle-rotate-off) 131 | 132 | (defn rotater-hit [note vel len] 133 | (let [start (+ 1 (metro))] 134 | (do 135 | (at (metro start) 136 | (rotater-on note vel)) 137 | (apply-by 138 | (metro (+ len start)) 139 | #'rotater-off [note])))) 140 | 141 | (defn stab [] 142 | (let [note (rand-nth (range 56 67)) 143 | vel (rand-nth (range 10 80 5)) 144 | len (rand-nth (range 0.05 0.3 0.05)) 145 | interval (rand-nth [4])] 146 | (map #(rotater-hit % vel len) (list note (+ note interval))))) 147 | 148 | ;; Place cursor at the end of these expressions 149 | ;; and do C-x e to execute them 150 | 151 | ;; Play drums 152 | ;; (loop-play #'jazzdrums length) 153 | 154 | ;; Play bass 155 | ;; (jazzbass) 156 | 157 | ;; Play some pno! 158 | ;; currently, this sends out midi, so you'll have to 159 | ;; connect something at the other end ;-) 160 | ;; Check the synth-out def in rotater.clj 161 | ;; (stab) 162 | 163 | ;; (stop) 164 | 165 | ;; TODO - a way of ensuring that we start drums+bass at (zero? (mod beat 4)) 166 | 167 | 168 | ;; TODO - some way to go to double tempo - the one below turns music into noise! 169 | ;; (metro :bpm (* 2 tempo)) 170 | 171 | ;; And back to music! 172 | ;; (metro :bpm tempo) 173 | 174 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/melody.clj: -------------------------------------------------------------------------------- 1 | (ns algorithmuss.melody 2 | (:use [leipzig melody scale live] 3 | [overtone.inst.piano]) 4 | (:require [overtone.live :as overtone])) 5 | 6 | ;; Minimal example of how to play a melody using Clojure/Overtone/Leipzig, based on code 7 | ;; at https://github.com/ctford/leipzig 8 | 9 | ;; by Lee Spector, lspector@hampshire.edu, 20140204 10 | 11 | ;; Add the following to your dependencies in project.cl, and do "lein deps" if your environment requires it: 12 | ;; [leipzig "0.7.0"] 13 | 14 | 15 | (defmethod play-note :default [{midi :pitch}] (piano midi)) 16 | 17 | (defn play-melody 18 | [pitches durations] 19 | (->> (phrase durations pitches) 20 | (where :part (is :melody)) 21 | (where :time (bpm 60)) 22 | (where :pitch (comp C major)) 23 | play)) 24 | 25 | ;; C major scale 26 | (play-melody [0 1 2 3 4 5 6 7] 27 | [1 1 1 1 1 1 1 1]) 28 | 29 | ;; C chromatic scale 30 | (play-melody [0 0.5 1 1.5 2 3 3.5 4 4.5 5 5.5 6 7] 31 | [1 1 1 1 1 1 1 1 1 1 1 1 1]) 32 | 33 | ;(stop) 34 | 35 | (defn random-beats [n] 36 | (if (or (<= n 1/8) 37 | (zero? (rand-int 12))) 38 | [n] 39 | (concat (random-beats (/ n 2)) 40 | (random-beats (/ n 2))))) 41 | 42 | ;(random-beats 4) 43 | 44 | ;; here's a non-recursive version... uglier but safer: 45 | 46 | (defn random-beats [n] 47 | (loop [result [] 48 | remaining [n]] 49 | (if (empty? remaining) 50 | result 51 | (let [first-thing (first remaining)] 52 | (if (or (<= first-thing 1/8) 53 | (zero? (rand-int 12))) 54 | (recur (conj result first-thing) 55 | (rest remaining)) 56 | (recur result 57 | (concat [(/ first-thing 2) (/ first-thing 2)] 58 | (rest remaining)))))))) 59 | 60 | ;(random-beats 4) 61 | 62 | (defn random-pitch [] 63 | (if (zero? (rand-int 8)) 64 | nil 65 | (- (rand-int 48) 24))) 66 | 67 | ; (random-pitch) 68 | 69 | (play-melody (repeatedly random-pitch) (random-beats 4)) 70 | 71 | #_(let [rhy1 (random-beats 2) 72 | p1 (repeatedly (count rhy1) random-pitch) 73 | rhy2 (random-beats 2) 74 | p2 (repeatedly (count rhy2) random-pitch) 75 | durations (concat rhy1 rhy1 rhy1 rhy1 76 | rhy2 rhy2 rhy1 rhy1) 77 | pitches (concat p1 p1 p2 p2 78 | (reverse p1) (reverse p1) p2 p1)] 79 | (println "durations:" durations) 80 | (println "pitches:" pitches) 81 | (play-melody pitches durations)) 82 | 83 | 84 | ;; This will allow you to use a better sounding piano, but the first time you 85 | ;; do it it'll take a lot of time to download samples. 86 | 87 | ;(use 'overtone.inst.sampled-piano) 88 | 89 | ;(defmethod play-note :default [{midi :pitch}] (sampled-piano midi)) -------------------------------------------------------------------------------- /overtone/src/algorithmuss/nineeights.clj: -------------------------------------------------------------------------------- 1 | ;; nineeights.clj 2 | ;; (c) 2017 by Milan Gruner 3 | ;; Part of project "AlgorithMuss" 4 | 5 | (ns algorithmuss.nineeights) 6 | (use 'algorithmuss.instruments) 7 | 8 | (require 9 | '[leipzig.melody :refer [all bpm is phrase tempo then times where with]] 10 | '[overtone.live :as overtone] 11 | '[leipzig.live :as live] 12 | '[leipzig.scale :as scale]) 13 | 14 | (def melody (phrase 15 | [1/8 3/8 1/8 2/8 1/8 1/8 1/8] 16 | [0 0 2 1 4 3 1])) 17 | 18 | (def main-instrument funky) 19 | 20 | (defmethod live/play-note :default [{midi :pitch seconds :duration}] 21 | (-> midi overtone/midi->hz (main-instrument seconds))) 22 | 23 | (->> 24 | melody 25 | (tempo (bpm 90)) 26 | (where :pitch (comp scale/C scale/major)) 27 | live/play) 28 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/rowrowrow.clj: -------------------------------------------------------------------------------- 1 | (ns algorithmuss.rowrowrow 2 | (:require [overtone.live :as overtone] 3 | [leipzig.melody :refer [bpm all phrase then times where with tempo]] 4 | [leipzig.scale :as scale] 5 | [leipzig.canon :as canon] 6 | [leipzig.chord :as chord] 7 | [leipzig.live :as live])) 8 | 9 | (overtone/definst beep [freq 440] 10 | (-> freq 11 | overtone/saw 12 | (* (overtone/env-gen (overtone/perc) :action overtone/FREE)))) 13 | 14 | (overtone/definst ping [freq 440] 15 | (-> freq 16 | overtone/square 17 | (* (overtone/env-gen (overtone/perc) :action overtone/FREE)))) 18 | 19 | (overtone/definst seeth [freq 440 dur 1.0] 20 | (-> freq 21 | overtone/saw 22 | (* (overtone/env-gen (overtone/perc (* dur 1/2) (* dur 1/2)) :action overtone/FREE)))) 23 | 24 | (defmethod live/play-note :leader [{midi :pitch}] 25 | (-> midi overtone/midi->hz beep)) 26 | 27 | (defmethod live/play-note :follower [{midi :pitch}] 28 | (-> midi overtone/midi->hz ping)) 29 | 30 | (defmethod live/play-note :bass [{midi :pitch seconds :duration}] 31 | (-> midi overtone/midi->hz (/ 2) (seeth seconds))) 32 | 33 | (def melody "A simple melody built from durations and pitches." 34 | ; Row, row, row your boat, 35 | (->> (phrase [3/3 3/3 2/3 1/3 3/3] 36 | [ 0 0 0 1 2]) 37 | (then 38 | ; Gent-ly down the stream, 39 | (phrase [2/3 1/3 2/3 1/3 6/3] 40 | [ 2 1 2 3 4])) 41 | (then 42 | ; Merrily, merrily, merrily, merrily, 43 | (phrase (repeat 12 1/3) 44 | (mapcat (partial repeat 3) [7 4 2 0]))) 45 | (then 46 | ; Life is but a dream! 47 | (phrase [2/3 1/3 2/3 1/3 6/3] 48 | [ 4 3 2 1 0])) 49 | (all :part :leader))) 50 | 51 | (def bass "A bass part to accompany the melody." 52 | (->> (phrase [1 1 2] 53 | [0 -3 0]) 54 | (all :part :bass) 55 | (times 4))) 56 | 57 | (defn row-row 58 | "Play the tune 'Row, row, row your boat' as a round." 59 | [speed key] 60 | (->> melody 61 | (canon/canon (comp (canon/simple 4) (partial all :part :follower))) 62 | (with bass) 63 | (tempo speed) 64 | (where :pitch key) 65 | live/play)) 66 | 67 | ;(comment 68 | ;(row-row (bpm 120) (comp scale/C scale/major)) 69 | (row-row (bpm 90) (comp scale/low scale/B scale/minor)) 70 | ;) 71 | -------------------------------------------------------------------------------- /overtone/src/algorithmuss/say.clj: -------------------------------------------------------------------------------- 1 | (ns algorithmuss.say 2 | (:require [clj-http.client :as client]) 3 | (:import (java.io File FileOutputStream ByteArrayInputStream) 4 | (javazoom.jl.player Player))) 5 | 6 | (defn say [response] 7 | (let [mp3 (:body (client/get "http://translate.google.com/translate_tts" 8 | {:query-params {"ie" "UTF-8" 9 | "tl" "en" 10 | "q" response} 11 | :as :byte-array})) ] 12 | (with-open [player (new Player (ByteArrayInputStream. mp3))] 13 | (.play player)))) 14 | -------------------------------------------------------------------------------- /overtone/target/classes/META-INF/maven/algorithmuss/algorithmuss/pom.properties: -------------------------------------------------------------------------------- 1 | #Leiningen 2 | #Fri Mar 17 17:19:21 CET 2017 3 | version=0.1.0-SNAPSHOT 4 | revision=af05841bad156a1fa1a3ecd22b440392587f4ea9\n 5 | groupId=algorithmuss 6 | artifactId=algorithmuss 7 | -------------------------------------------------------------------------------- /overtone/target/native/linux/x86/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86/.gitkeep -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/.gitkeep -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/AY_UGen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/AY_UGen.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/AmbisonicUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/AmbisonicUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/AtkUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/AtkUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BBCut2UGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BBCut2UGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BatPVUgens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BatPVUgens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BatUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BatUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BerlachUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BerlachUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BetablockerUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BetablockerUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BhobChaos.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BhobChaos.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BhobFFT.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BhobFFT.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BhobFilt.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BhobFilt.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BhobGrain.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BhobGrain.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BhobNoise.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BhobNoise.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BinaryOpUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BinaryOpUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/BlackrainUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/BlackrainUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/ChaosUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/ChaosUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/Concat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/Concat.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/DelayUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/DelayUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/DemandUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/DemandUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/DiskIO_UGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/DiskIO_UGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/DistortionUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/DistortionUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/DynNoiseUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/DynNoiseUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/FFT_UGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/FFT_UGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/FilterUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/FilterUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/GendynUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/GendynUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/GlitchUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/GlitchUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/GrainUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/GrainUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/IOUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/IOUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/JoshAmbiUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/JoshAmbiUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/JoshGrainUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/JoshGrainUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/JoshPVUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/JoshPVUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/JoshUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/JoshUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/KeyboardUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/KeyboardUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/LFUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/LFUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/LadspaUGen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/LadspaUGen.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/LoopBuf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/LoopBuf.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDBufferUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDBufferUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDCepstrumUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDCepstrumUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDChaosUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDChaosUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDDistortionUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDDistortionUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDFFTUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDFFTUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDFilterUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDFilterUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDGetenvUGen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDGetenvUGen.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDOscUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDOscUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDPollUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDPollUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDSOMUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDSOMUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDTreeUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDTreeUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MCLDTriggeredStatsUgens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MCLDTriggeredStatsUgens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/ML_UGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/ML_UGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MdaUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MdaUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MembraneUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MembraneUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MouseUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MouseUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/MulAddUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/MulAddUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/NCAnalysisUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/NCAnalysisUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/NoiseUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/NoiseUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/OscUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/OscUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/PV_ThirdParty.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/PV_ThirdParty.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/PanUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/PanUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/PhysicalModelingUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/PhysicalModelingUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/PitchDetection.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/PitchDetection.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/RFWUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/RFWUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/RMEQSuite.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/RMEQSuite.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/ReverbUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/ReverbUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/SLUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/SLUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/StkUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/StkUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/SummerUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/SummerUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/TJUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/TJUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/TagSystemUgens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/TagSystemUgens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/TestUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/TestUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/TriggerUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/TriggerUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/UnaryOpUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/UnaryOpUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/UnpackFFTUGens.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/UnpackFFTUGens.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/VBAP.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/VBAP.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/VOSIM.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/VOSIM.so -------------------------------------------------------------------------------- /overtone/target/native/linux/x86_64/libscsynth.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/linux/x86_64/libscsynth.so -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/.gitkeep -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/BinaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/BinaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/ChaosUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/ChaosUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/DelayUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/DelayUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/DemandUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/DemandUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/DiskIO_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/DiskIO_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/DynNoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/DynNoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/FFT_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/FFT_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/FilterUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/FilterUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/GendynUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/GendynUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/GrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/GrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/IOUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/IOUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/KeyboardUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/KeyboardUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/LFUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/LFUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/ML_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/ML_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/MouseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/MouseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/MulAddUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/MulAddUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/NoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/NoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/OscUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/OscUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/PV_ThirdParty.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/PV_ThirdParty.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/PanUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/PanUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/PhysicalModelingUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/PhysicalModelingUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/ReverbUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/ReverbUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/TestUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/TestUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/TriggerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/TriggerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/UnaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/UnaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/UnpackFFTUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/UnpackFFTUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86/libscsynth.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86/libscsynth.dylib -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/.gitkeep -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/AY_UGen.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/AY_UGen.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/AmbisonicUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/AmbisonicUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/AtkUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/AtkUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BBCut2UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BBCut2UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BatPVUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BatPVUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BatUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BatUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BerlachUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BerlachUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BetablockerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BetablockerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BhobChaos.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BhobChaos.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BhobFFT.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BhobFFT.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BhobFilt.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BhobFilt.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BhobGrain.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BhobGrain.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BhobNoise.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BhobNoise.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BinaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BinaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/BlackrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/BlackrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/ChaosUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/ChaosUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/Concat.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/Concat.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/DelayUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/DelayUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/DemandUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/DemandUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/DiskIO_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/DiskIO_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/DistortionUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/DistortionUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/DynNoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/DynNoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/FFT_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/FFT_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/FilterUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/FilterUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/GendynUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/GendynUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/GlitchUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/GlitchUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/GrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/GrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/IOUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/IOUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/JoshAmbiUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/JoshAmbiUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/JoshGrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/JoshGrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/JoshPVUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/JoshPVUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/JoshUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/JoshUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/KeyboardUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/KeyboardUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/LFUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/LFUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/LadspaUGen.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/LadspaUGen.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/LoopBuf.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/LoopBuf.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDBufferUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDBufferUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDCepstrumUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDCepstrumUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDChaosUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDChaosUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDDistortionUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDDistortionUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDFFTUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDFFTUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDFilterUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDFilterUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDGetenvUGen.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDGetenvUGen.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDOscUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDOscUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDPollUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDPollUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDSOMUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDSOMUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDTreeUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDTreeUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MCLDTriggeredStatsUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MCLDTriggeredStatsUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/ML_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/ML_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MdaUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MdaUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MembraneUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MembraneUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MouseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MouseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/MulAddUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/MulAddUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/NCAnalysisUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/NCAnalysisUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/NoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/NoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/OscUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/OscUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/PV_ThirdParty.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/PV_ThirdParty.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/PanUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/PanUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/PhysicalModelingUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/PhysicalModelingUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/PitchDetection.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/PitchDetection.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/RFWUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/RFWUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/RMEQSuite.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/RMEQSuite.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/ReverbUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/ReverbUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/SLUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/SLUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/StkUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/StkUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/SummerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/SummerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/TJUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/TJUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/TagSystemUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/TagSystemUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/TestUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/TestUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/TriggerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/TriggerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/UnaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/UnaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/UnpackFFTUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/UnpackFFTUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/VBAP.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/VBAP.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/VOSIM.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/VOSIM.scx -------------------------------------------------------------------------------- /overtone/target/native/macosx/x86_64/libscsynth.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/macosx/x86_64/libscsynth.dylib -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/.gitkeep -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/AY_UGen.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/AY_UGen.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/AmbisonicUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/AmbisonicUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/AntiAliasingOscillators.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/AntiAliasingOscillators.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/AtkUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/AtkUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/AuditoryModeling.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/AuditoryModeling.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BBCut2UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BBCut2UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BatPVUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BatPVUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BatUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BatUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BerlachUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BerlachUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BetablockerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BetablockerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BhobChaos.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BhobChaos.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BhobFFT.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BhobFFT.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BhobFilt.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BhobFilt.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BhobGrain.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BhobGrain.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BhobNoise.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BhobNoise.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BinaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BinaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/BlackrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/BlackrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/ChaosUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/ChaosUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/Chromagram.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/Chromagram.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/Concat.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/Concat.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/DelayUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/DelayUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/DemandUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/DemandUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/DiskIO_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/DiskIO_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/DistortionUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/DistortionUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/DynNoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/DynNoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/FFT_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/FFT_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/FeatureSave.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/FeatureSave.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/FilterUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/FilterUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/GendynUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/GendynUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/GlitchUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/GlitchUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/GrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/GrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/IOUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/IOUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/JoshAmbiUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/JoshAmbiUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/JoshGrainUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/JoshGrainUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/JoshPVUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/JoshPVUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/JoshUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/JoshUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/KeyboardUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/KeyboardUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/LFUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/LFUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/LoopBuf.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/LoopBuf.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDBufferUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDBufferUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDCepstrumUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDCepstrumUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDChaosUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDChaosUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDDistortionUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDDistortionUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDFFTUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDFFTUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDFilterUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDFilterUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDGetenvUGen.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDGetenvUGen.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDOscUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDOscUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDPollUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDPollUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDSOMUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDSOMUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDTreeUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDTreeUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MCLDTriggeredStatsUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MCLDTriggeredStatsUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/ML_UGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/ML_UGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MdaUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MdaUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MembraneUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MembraneUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MouseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MouseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/MulAddUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/MulAddUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/NCAnalysisUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/NCAnalysisUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/NoiseUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/NoiseUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/OscUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/OscUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/PV_ThirdParty.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/PV_ThirdParty.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/PanUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/PanUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/PhysicalModelingUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/PhysicalModelingUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/PitchDetection.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/PitchDetection.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/RFWUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/RFWUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/RMEQSuite.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/RMEQSuite.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/ReverbUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/ReverbUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/SLUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/SLUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/SensoryDissonance.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/SensoryDissonance.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/StkUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/StkUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/SummerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/SummerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/TJUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/TJUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/TagSystemUgens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/TagSystemUgens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/TestUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/TestUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/TriggerUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/TriggerUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/UnaryOpUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/UnaryOpUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/UnpackFFTUGens.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/UnpackFFTUGens.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/VBAP.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/VBAP.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/VOSIM.scx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/VOSIM.scx -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/libfftw3f-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/libfftw3f-3.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/libgcc_s_dw2-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/libgcc_s_dw2-1.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/libportmidi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/libportmidi.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/libscsynth.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/libscsynth.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/libsndfile-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/libsndfile-1.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/mingwm10.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/mingwm10.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/pthreadGC2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/pthreadGC2.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86/readline5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86/readline5.dll -------------------------------------------------------------------------------- /overtone/target/native/windows/x86_64/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemilonkh/algorithmuss/297af0353a46ea55324127ba9d01adb09b970a6a/overtone/target/native/windows/x86_64/.gitkeep -------------------------------------------------------------------------------- /overtone/target/repl-port: -------------------------------------------------------------------------------- 1 | 35075 -------------------------------------------------------------------------------- /overtone/target/stale/extract-native.dependencies: -------------------------------------------------------------------------------- 1 | ([:dependencies ([org.clojure/clojure "1.8.0"] [overtone/overtone "0.10.1"] [org.clojure/tools.nrepl "0.2.10" :exclusions ([org.clojure/clojure])] [clojure-complete/clojure-complete "0.2.3" :exclusions ([org.clojure/clojure])] [lein-light-nrepl/lein-light-nrepl "0.3.0"] [lein-light-nrepl-instarepl/lein-light-nrepl-instarepl "0.3.1"])]) -------------------------------------------------------------------------------- /overtone/target/stale/leiningen.core.classpath.extract-native-dependencies: -------------------------------------------------------------------------------- 1 | [{:dependencies {org.clojure/data.json {:vsn "0.2.3", :native-prefix nil}, org.clojure/clojure {:vsn "1.8.0", :native-prefix nil}, overtone/scsynth-extras {:vsn "3.5.7.0", :native-prefix nil}, overtone/byte-spec {:vsn "0.3.1", :native-prefix nil}, overtone/osc-clj {:vsn "0.9.0", :native-prefix nil}, org.clojure/google-closure-library {:vsn "0.0-20151016-61277aea", :native-prefix nil}, org.clojure/clojurescript {:vsn "1.7.170", :native-prefix nil}, overtone {:vsn "0.10.1", :native-prefix nil}, clj-glob {:vsn "1.0.0", :native-prefix nil}, overtone/scsynth {:vsn "3.5.7.0", :native-prefix nil}, org.clojure/math.numeric-tower {:vsn "0.0.4", :native-prefix nil}, org.mozilla/rhino {:vsn "1.7R5", :native-prefix nil}, org.clojure/google-closure-library-third-party {:vsn "0.0-20151016-61277aea", :native-prefix nil}, javax.jmdns/jmdns {:vsn "3.4.1", :native-prefix nil}, org.clojure/tools.nrepl {:vsn "0.2.12", :native-prefix nil}, clojure-complete {:vsn "0.2.4", :native-prefix nil}, overtone/libs.handlers {:vsn "0.2.0", :native-prefix nil}, com.google.javascript/closure-compiler {:vsn "v20151015", :native-prefix nil}, commons-net {:vsn "3.0.1", :native-prefix nil}, net.java.dev.jna/jna {:vsn "3.4.0", :native-prefix nil}, overtone/midi-clj {:vsn "0.5.0", :native-prefix nil}, org.clojure/tools.reader {:vsn "0.10.0-alpha3", :native-prefix nil}, overtone/at-at {:vsn "1.2.0", :native-prefix nil}, leipzig {:vsn "0.10.0", :native-prefix nil}, clj-native {:vsn "0.9.3", :native-prefix nil}}, :native-path "target/native/"} {:native-path "target/native/", :dependencies {org.clojure/data.json {:vsn "0.2.3", :native-prefix nil, :native? false}, org.clojure/clojure {:vsn "1.8.0", :native-prefix nil, :native? false}, overtone/scsynth-extras {:vsn "3.5.7.0", :native-prefix nil, :native? true}, overtone/byte-spec {:vsn "0.3.1", :native-prefix nil, :native? false}, overtone/osc-clj {:vsn "0.9.0", :native-prefix nil, :native? false}, org.clojure/google-closure-library {:vsn "0.0-20151016-61277aea", :native-prefix nil, :native? false}, org.clojure/clojurescript {:vsn "1.7.170", :native-prefix nil, :native? false}, overtone {:vsn "0.10.1", :native-prefix nil, :native? false}, clj-glob {:vsn "1.0.0", :native-prefix nil, :native? false}, overtone/scsynth {:vsn "3.5.7.0", :native-prefix nil, :native? true}, org.clojure/math.numeric-tower {:vsn "0.0.4", :native-prefix nil, :native? false}, org.mozilla/rhino {:vsn "1.7R5", :native-prefix nil, :native? false}, org.clojure/google-closure-library-third-party {:vsn "0.0-20151016-61277aea", :native-prefix nil, :native? false}, javax.jmdns/jmdns {:vsn "3.4.1", :native-prefix nil, :native? false}, org.clojure/tools.nrepl {:vsn "0.2.12", :native-prefix nil, :native? false}, clojure-complete {:vsn "0.2.4", :native-prefix nil, :native? false}, overtone/libs.handlers {:vsn "0.2.0", :native-prefix nil, :native? false}, com.google.javascript/closure-compiler {:vsn "v20151015", :native-prefix nil, :native? false}, commons-net {:vsn "3.0.1", :native-prefix nil, :native? false}, net.java.dev.jna/jna {:vsn "3.4.0", :native-prefix nil, :native? false}, overtone/midi-clj {:vsn "0.5.0", :native-prefix nil, :native? false}, org.clojure/tools.reader {:vsn "0.10.0-alpha3", :native-prefix nil, :native? false}, overtone/at-at {:vsn "1.2.0", :native-prefix nil, :native? false}, leipzig {:vsn "0.10.0", :native-prefix nil, :native? false}, clj-native {:vsn "0.9.3", :native-prefix nil, :native? false}}}] -------------------------------------------------------------------------------- /overtone/test/algorithmuss/core_test.clj: -------------------------------------------------------------------------------- 1 | (ns algorithmuss.core-test 2 | (:require [clojure.test :refer :all] 3 | [algorithmuss.core :refer :all])) 4 | 5 | (deftest a-test 6 | (testing "FIXME, I fail." 7 | (is (= 0 1)))) 8 | -------------------------------------------------------------------------------- /overtone/tools/ascmidi2notes.py: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | 3 | # ascmidi2notes.py 4 | # (c) 2017 by Milan Gruner 5 | # Part of project "AlgorithMuss" 6 | # Parses the output of mid2asc.c 7 | # See: http://www.archduke.org/midi/ 8 | 9 | import csv 10 | import sys 11 | import re 12 | from itertools import groupby 13 | from fractions import * 14 | 15 | default_note = { 16 | "bar": 1, 17 | "crotchet": 0, 18 | "track": 0, 19 | "channel": 1, 20 | "text": "", 21 | "note": "" 22 | } 23 | 24 | def parse_line(line): 25 | note = default_note 26 | 27 | if len(line) < 9: 28 | note["text"] = " ".join(line) 29 | return note 30 | 31 | note["bar"] = int(line[1]) 32 | note["crotchet"] = parse_crotchet(line[3]) 33 | note["track"] = int(line[5]) 34 | note["channel"] = int(line[7]) 35 | 36 | if line[8] == "NT": 37 | note["note"] = line[9].replace("'", "+") 38 | else: 39 | note["text"] = ' '.join(line[9:]) 40 | 41 | return note 42 | 43 | def parse_crotchet(crotchetStr): 44 | resultValue = Fraction(0, 1) 45 | fracList = crotchetStr.split("+") 46 | for frac in fracList: 47 | if '/' in frac: 48 | fracParts = frac.split("/") 49 | numerator = int(fracParts[0]) 50 | denominator = int(fracParts[1]) 51 | 52 | resultFrac = Fraction(numerator, denominator) 53 | resultValue += resultFrac 54 | else: 55 | resultFrac = Fraction(int(frac), 1) 56 | resultValue += resultFrac 57 | 58 | return resultValue 59 | 60 | def main(args): 61 | if len(args) < 1: 62 | print("Usage: python ascmidi2notes.py FILENAME") 63 | return 1 64 | 65 | filename = args[1] 66 | midiLines = [] 67 | with open(filename, 'r') as f: 68 | for line in f: 69 | line = re.sub(' +', '\t', line) 70 | line = line.strip().split('\t') 71 | midiLines.append(line) 72 | 73 | midiEvents = map(parse_line, midiLines) 74 | 75 | tracks = [[], []] 76 | for trackDict in midiEvents: 77 | key = int(trackDict["track"]) 78 | if len(tracks) <= key: 79 | tracks[key] = [] 80 | note = dict(trackDict) 81 | tracks[key].append(note) 82 | #print(note) 83 | 84 | trackNum = 0 85 | for track in tracks: 86 | print("Track #", trackNum) 87 | trackNum += 1 88 | noteStr = "[" 89 | lenStr = "[" 90 | 91 | # TODO group by note["bar"] and make pretty bar lines 92 | 93 | for note in track: 94 | if note["note"] != "": 95 | noteStr += note["note"] + " " 96 | # TODO calculate note length fractions etc. 97 | lenStr += str(Fraction(1,4) * note["crotchet"]) + " " 98 | 99 | # remove last space before bracket 100 | noteStr = noteStr[:-1] + "]" 101 | lenStr = lenStr[:-1] + "]" 102 | 103 | print("pitches", noteStr) 104 | print("times", lenStr) 105 | 106 | #for note in notes: 107 | # print("Note: ", note["crotchet"], " ", note["note"], "\n") 108 | print("End...") 109 | 110 | if __name__ == "__main__": 111 | main(sys.argv) 112 | -------------------------------------------------------------------------------- /overtone/tools/findscale.py: -------------------------------------------------------------------------------- 1 | # findscale.py 2 | # (c) 2017 by Milan Gruner 3 | # Part of project "AlgorithMuss" 4 | 5 | import music21 6 | import sys 7 | 8 | if len(sys.argv) < 1: 9 | print("Usage: python3 findscale.py MIDI_FILENAME") 10 | sys.exit(1) 11 | 12 | score = music21.converter.parse(sys.argv[1]) 13 | 14 | methods = ['key', 'Krumhansl', 'AardenEssen'] 15 | 16 | for method in methods: 17 | key = score.analyze(method) 18 | print("Using method:", method) 19 | print("Key found:", key.tonic.name, key.mode) 20 | -------------------------------------------------------------------------------- /overtone/tools/getscale.py: -------------------------------------------------------------------------------- 1 | # getscale.py 2 | # (c) 2017 by Milan Gruner 3 | # Part of project "AlgorithMuss" 4 | 5 | import mingus.core.notes as notes 6 | import mingus.core.scales as scales 7 | import sys 8 | 9 | def main(): 10 | if len(sys.argv) < 3: 11 | print("Usage: python3 getscale.py BASETONE MODE") 12 | print("e,g. python3 getscale.py C# minor") 13 | sys.exit(1) 14 | 15 | basetone = sys.argv[1] 16 | mode = sys.argv[2] 17 | 18 | if not notes.is_valid_note(basetone): 19 | print("Invalid note: ", basetone) 20 | sys.exit(1) 21 | 22 | print("Your scale is:") 23 | scale = get_scale(basetone, mode) 24 | print(scale) 25 | 26 | def get_scale(basetone, mode): 27 | scale = [] 28 | 29 | if mode == "major": 30 | scale = scales.major(basetone) 31 | if mode == "minor": 32 | scale =scales.minor(basetone) 33 | if mode == "ionian": 34 | scale = scales.ionian(basetone) 35 | if mode == "dorian": 36 | scale = scales.dorian(basetone) 37 | if mode == "phrygian": 38 | scale = scales.phrygian(basetone) 39 | if mode == "lydian": 40 | scale = scales.lydian(basetone) 41 | if mode == "mixolydian": 42 | scale = scales.mixolydian(basetone) 43 | if mode == "aeolian": 44 | scale = scales.aeolian(basetone) 45 | if mode == "locrian": 46 | scale = scales.locrian(basetone) 47 | # TODO implement chromatic scales 48 | 49 | return scale 50 | 51 | def get_note_index(note, scale): 52 | if not note in scale: 53 | print("Note", note, "not in scale", scale, "!") 54 | return -127 55 | 56 | # TODO implement approximate search and C# = Db equality (using notes.note_to_int()) 57 | # TODO implement note neighbor (halftone step) search (then append # or b) 58 | return scale.index(note.trim()) 59 | 60 | def get_roman(num): 61 | roman = OrderedDict() 62 | roman[1000] = "M" 63 | roman[900] = "CM" 64 | roman[500] = "D" 65 | roman[400] = "CD" 66 | roman[100] = "C" 67 | roman[90] = "XC" 68 | roman[50] = "L" 69 | roman[40] = "XL" 70 | roman[10] = "X" 71 | roman[9] = "IX" 72 | roman[5] = "V" 73 | roman[4] = "IV" 74 | roman[1] = "I" 75 | 76 | def roman_num(num): 77 | for dec in roman.keys(): 78 | x, y = divmod(num, dec) 79 | yield roman[dec] * x 80 | num -= (dec * x) 81 | if num > 0: 82 | roman_num(num) 83 | else: 84 | break 85 | 86 | return "".join(roman_num(num)) 87 | 88 | if __name__ == "__main__": 89 | main() 90 | -------------------------------------------------------------------------------- /overtone/tools/midi2clj.py: -------------------------------------------------------------------------------- 1 | # midi2clj.py 2 | # (c) 2017 by Milan Gruner 3 | # Part of project "AlgorithMuss" 4 | # Translate MIDI files into data structures for Overtone and Leipzig 5 | 6 | import sys 7 | from subprocess import check_output 8 | 9 | def main(): 10 | if len(sys.argv) < 2: 11 | print("Usage: python3 midi2clj.py MIDI_FILE") 12 | sys.exit(1) 13 | 14 | ascmidi = check_output(["./midiconverter/mid2asc", sys.argv[1]]) 15 | 16 | # TODO feed into ascmidi2notes.py 17 | # refactor that to allow direct string input instead of filename 18 | # => refactor ascmidi2notes.py into module 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /overtone/tools/midiconverter/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all clean 2 | all: mid2asc asc2mid 3 | clean: 4 | rm mid2asc 5 | rm asc2mid 6 | 7 | mid2asc: 8 | gcc mid2asc.c -lm -o mid2asc 9 | asc2mid: 10 | gcc asc2mid.c -lm -o asc2mid 11 | -------------------------------------------------------------------------------- /overtone/tools/midiconverter/asc2mid.c: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | asc2mid: 4 | Converts ascii to midi. Ascii is in format output by mid2asc in one 5 | of several modes, or it can be in a more mixed format. 6 | 7 | Time of an event can be determined by one of 8 | (i) BA+CR: Bar number+Crotchet within bar 9 | (ii) CR: Crotchet number from the very start 10 | (iii) DT: Delta time from previous event - native midi format 11 | (iv) FOL[+/-crotchets]: Time from end of previous note/rest on that track 12 | (v) SIM[+crotchets]: Time from start of previous note/rest on that track 13 | 14 | Basic complication of mode (i) is that the Time signature affects 15 | the interpretation of time, and that time signature can change at 16 | any time on any track and should affect all tracks. 17 | 18 | At the moment it requires lines of each track to be in chronological 19 | order which can make it slightly awkward to change the track of a 20 | note in sep=1 mode. If all file were in mode (ii), then it could 21 | sort it out for you, I suppose. Or the user could sort the lines 22 | first. 23 | 24 | Should make more case insensitive? 25 | 26 | A.P.Selby 27 | November 2002 28 | 29 | */ 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #define MIN(x,y) ((x)<(y)?(x):(y)) 39 | #define MAX(x,y) ((x)>(y)?(x):(y)) 40 | #define MAXNOB 10000 41 | 42 | char *inbuf,*inend,*ip; 43 | int tr,infinity; 44 | int maj[14]={0,2,4,5,7,9,11, 12,14,16,17,19,21,23}; 45 | typedef struct {int l,st,von,bt,pt,et,sta,bn,cr,tt,ln,ip,op;unsigned char *out;} trackinfo; 46 | trackinfo *tri; 47 | /* 48 | trackinfo: 49 | st = midi state (state of previous midi event laid down) 50 | bt = time of last event laid down 51 | pt = start time of last note or rest 52 | et = end time of last note or rest 53 | sta = track state 54 | state 0 ==> Need to read time of new line 55 | state 1 ==> Time of next line specified by tt 56 | state 2 ==> Time of next line specified by bn,cr; tt is valid if there is no time sig. change before it 57 | state 3 ==> Track at an end - no more lines on this track 58 | bn,cr,tt time of next event defined by (bn,cr) or tt according to state 59 | ip = integer input pointer (inbuf+.ip is actual pointer) 60 | ln = input line number 61 | out = pointer to start of output buffer (can change when gets resized) 62 | op = integer output pointer (.out+.op is actual pointer) 63 | l = allocated size of output buffer 64 | von = volume of last note-on event 65 | */ 66 | 67 | void err(char *l){ 68 | if(tr==-1)fprintf(stderr,"Error: %s\n",l); else fprintf(stderr,"Error: %s at line %d:\n%s\n",l,tri[tr].ln,ip); 69 | exit(1); 70 | } 71 | #define assrt(x,y) if(!(x))err(y); 72 | 73 | char *getns(char *l){while(*l==' ')l++; return l;} 74 | 75 | int strtoi(char *l,char **e){ 76 | int b,n; 77 | char *l1,*l2; 78 | l1=l;while(*l1!=0&&*l1!='&'&&!isdigit(*l1)&&strncmp(l1,"infinity",8))l1++; 79 | if(strncmp(l1,"infinity",8)==0)return infinity; 80 | if(*l1=='&'){l1++;b=16;} else if(*l1=='0'&&l1[1]=='x'){l1+=2;b=16;} else b=10; 81 | n=strtol(l1,&l2,b); 82 | if(e){if(l2==l1)*e=l; else *e=l2;} 83 | return n; 84 | } 85 | 86 | /* 87 | int getfrn(char *l,int d){ 88 | int a,b,c; 89 | char *l1; 90 | a=strtoi(l,&l1); 91 | if(l1[0]=='+')b=strtoi(l1+1,&l1); else {b=a;a=0;} 92 | if(a==infinity||b==infinity)return infinity; 93 | if(l1[0]=='/')c=strtoi(l1+1,0); else c=1; 94 | b+=a*c; 95 | assrt(d%c==0,"fraction not allowed"); 96 | return b*(d/c); 97 | } 98 | */ 99 | int getfrn(char *l,int d){ 100 | int a,b,t; 101 | char *l1; 102 | t=0; 103 | do{ 104 | a=strtoi(l,&l1);if(l1==l)break; 105 | if(a==infinity)return infinity; 106 | if(l1[0]=='/')b=strtoi(l1+1,&l1); else b=1; 107 | a*=d;assrt(a%b==0,"fraction not allowed");t+=a/b; 108 | l=l1; 109 | }while(l[0]=='+'); 110 | return t; 111 | } 112 | 113 | int strton(char *l,char **e){ 114 | int n; 115 | char *l1,*l2; 116 | while(*l==' ')l++; 117 | l1="CDEFGABR";l2=strchr(l1,toupper(*l));assrt(l2,"unrecognised note"); 118 | if(l2-l1==7){*e=l+1;return -1;} 119 | n=60+maj[l2-l1];l++; 120 | while(*l=='#'){n++;l++;} 121 | while(*l=='b'){n--;l++;} 122 | while(*l=='\''){n+=12;l++;} 123 | while(*l=='-'){n-=12;l++;} 124 | assrt(n>=0&&n<128,"note out of range"); 125 | *e=l;return n; 126 | } 127 | 128 | void acc(int p){ 129 | int nl; 130 | unsigned char *new; 131 | if(p<=tri[tr].l)return; 132 | if(tri[tr].l==0)nl=10240; else nl=tri[tr].l*2; 133 | if(nl0)tri[tr].out[tri[tr].op++]=(t>>(--n)*8)&255; 141 | } 142 | void put1(int t){putn(1,t);} 143 | void put2(int t){putn(2,t);} 144 | void put3(int t){putn(3,t);} 145 | void put4(int t){putn(4,t);} 146 | void putv(int t){ 147 | int n,u; 148 | assrt(t>=0&&t<0x10000000,"variable number out of range (event out of sequence?)"); 149 | for(n=1,u=t;u>=128;n++)u>>=7; 150 | acc(tri[tr].op+n); 151 | while(n>0)tri[tr].out[tri[tr].op++]=((t>>(--n)*7)&127)|128; 152 | tri[tr].out[tri[tr].op-1]&=~128; 153 | } 154 | void putstn(char *l,int s){acc(tri[tr].op+s);memcpy(tri[tr].out+tri[tr].op,l,s);tri[tr].op+=s;} 155 | void putst(char *l){putstn(l,strlen(l));} 156 | 157 | char *getl(int tr){ 158 | char *l; 159 | l=inbuf+tri[tr].ip;if(tri[tr].ln>0)l+=strlen(l)+1; 160 | tri[tr].ln++; 161 | while(l midifile\n\n"); 175 | fprintf(stderr," Time of an event can be determined by one of\n"); 176 | fprintf(stderr," (i) BA+CR: Bar number+Crotchet within bar\n"); 177 | fprintf(stderr," (ii) CR: Crotchet number from the very start\n"); 178 | fprintf(stderr," (iii) DT: Delta time from previous event - native midi format\n"); 179 | fprintf(stderr," (iv) FOL[+/-crotchets]: Time from end of previous note/rest\n"); 180 | fprintf(stderr," (v) SIM[+crotchets]: Time from start of previous note/rest\n"); 181 | exit(1); 182 | } 183 | fpi=fopen(av[1],"r");if(!fpi){fprintf(stderr,"Couldn't open %s\n",av[1]);exit(1);} 184 | fseek(fpi,0,SEEK_END);siz=ftell(fpi);rewind(fpi); 185 | fprintf(stderr,"File size %d byte%s\n",siz,siz==1?"":"s"); 186 | inbuf=(char*)malloc(siz+1);if(!inbuf){fprintf(stderr,"Couldn't malloc %d bytes (inbuf)\n",siz+1);exit(1);} 187 | n=fread(inbuf,1,siz,fpi);assert(n<=siz);siz=n;inbuf[siz]=0;inend=inbuf+siz;fclose(fpi); 188 | for(i=0;i is for the preamble */ 200 | for(i=0;i<=tracks;i++){ 201 | tri[i].out=0;tri[i].ip=0;tri[i].op=(i=0)tri[tr].tt=tri[tr].et; else 232 | fprintf(stderr,"Warning - FOL reverts to SIM following a DT-defined or infinite length note/rest\n"); 233 | } 234 | if(ip[3]=='+')tri[tr].tt+=getfrn(ip+4,tpc); 235 | if(ip[3]=='-')tri[tr].tt-=getfrn(ip+4,tpc); 236 | tri[tr].sta=1;goto ok0; 237 | } 238 | if(strncmp(ip,"CR ",3)==0){ 239 | tri[tr].tt=getfrn(ip+3,tpc); 240 | tri[tr].sta=1;goto ok0; 241 | } 242 | if(strncmp(ip,"BA ",3)==0){ 243 | tri[tr].bn=strtoi(ip+3,&l1)-1; 244 | l1=getns(l1);if(strncmp(l1,"CR ",3))err("Expect CR after BA"); 245 | tri[tr].cr=getfrn(l1+3,tpc); 246 | tri[tr].sta=2;goto ok0; 247 | } 248 | err("Expected time specification (DT, FOL, SIM, CR, or BA) at start of line"); 249 | } 250 | ok0: 251 | if(tri[tr].sta==2)tri[tr].tt=tt+(tri[tr].bn-bn)*tis2+tri[tr].cr-cr; 252 | if(tri[tr].tt0){non-=i;memmove(nob,nob+i,non*sizeof(noteoffbuf));} 277 | tr=tr0; 278 | rest=0;if(!text){l1=strstr(ip,"NT ");if(l1)rest=(toupper(*(getns(l1+3)))=='R');} 279 | if(!rest){putv(tt-tri[tr].bt);tri[tr].bt=tt;} 280 | if(text){ 281 | put1(tri[tr].st=0xFF); 282 | l1=strstr(ip,"type");assrt(l1,"missing 'type' in text line");t=strtoi(l1+4,0);put1(t); 283 | l1=strchr(l1+4,'"');assrt(l1,"missing opening quote in text line");l1++; 284 | l2=strrchr(l1,'"');assrt(l2,"missing closing quote in text line"); 285 | for(i=s=0;i=0&&ch<16,"channel number out of range"); 301 | l1=strstr(ip,"Time signature");if(l1){ 302 | tis0=strtoi(l1+14,&l1);tis1=strtoi(l1+1,0);assrt((tis0*4*tpc)%tis1==0,"New time signature not commensurate with division"); 303 | tis2=(tis0*4*tpc)/tis1; 304 | put1(tri[tr].st=0xFF); 305 | put1(0x58);putv(4);put1(tis0); 306 | for(i=0,n=tis1;n>1;i++)n>>=1;put1(i); 307 | l2=strstr(ip,"clocks/mtick");assrt(l2,"missing clocks/mtick");put1(strtoi(l2+12,0)); 308 | l2=strstr(ip,"crotchets/32ndnote");assrt(l2,"missing crotchets/32ndnote");put1(strtoi(l2+18,0)); 309 | continue; 310 | } 311 | l1=strstr(ip,"Channel volume");if(l1){ 312 | st=0xB0+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 313 | t=strtoi(l1+14,0);assrt(t>=0&&t<128,"channel volume out of range");put1(7);put1(t); 314 | continue; 315 | } 316 | l1=strstr(ip,"Instrument");if(l1){ 317 | st=0xC0+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 318 | t=strtoi(l1+10,0)-1;assrt(t>=0&&t<128,"instrument out of range");put1(t); 319 | continue; 320 | } 321 | l1=strstr(ip,"Sysex event");if(l1){ 322 | put1(tri[tr].st=strtoi(l1+11,&l1)); 323 | n=0;l2=l1;while(1){strtoi(l2,&l3);if(l3==l2)break;l2=l3;n++;} 324 | putv(n);for(l2=l1;n>0;n--)put1(strtoi(l2,&l2)); 325 | continue; 326 | } 327 | l1=strstr(ip,"End of track");if(l1){ 328 | put1(tri[tr].st=0xFF); 329 | put1(0x2F);put1(0); 330 | continue; 331 | } 332 | l1=strstr(ip,"Tempo");if(l1){ 333 | put1(tri[tr].st=0xFF); 334 | n=(int)(60*1000000./atof(l1+5)+.5);assrt(n>=0&&n<=0xFFFFFF,"tempo out of range"); 335 | put1(0x51);putv(3);put3(n); 336 | continue; 337 | } 338 | l1=strstr(ip,"Key ");if(l1){ 339 | put1(tri[tr].st=0xFF); 340 | l1=getns(l1+4);l2="FCGDAEB";l3=strchr(l2,toupper(*l1));assrt(l3,"unrecognised key");sf=l3-l2-1; 341 | do{l1++;sf+=7*((*l1=='#')-(*l1=='b'));}while(*l1=='#'||*l1=='b'); 342 | l2=strstr(l1," major");l3=strstr(l1," minor");assrt((l2!=0)^(l3!=0),"missing minor/major in key"); 343 | mi=(l3!=0);sf-=3*mi; 344 | put1(0x59);putv(2);put1(sf&255);put1(mi); 345 | continue; 346 | } 347 | l1=strstr(ip,"Meta Event");if(l1){ 348 | put1(tri[tr].st=0xFF); 349 | put1(strtoi(l1+10,&l1)); 350 | n=0;l2=l1;while(1){strtoi(l2,&l3);if(l3==l2)break;l2=l3;n++;} 351 | putv(n);for(l2=l1;n>0;n--)put1(strtoi(l2,&l2)); 352 | continue; 353 | } 354 | l1=strstr(ip,"ST ");if(l1){ 355 | st=strtoi(l1+3,&l1);if(st!=tri[tr].st||((st&0xF0)==0xF0))put1(tri[tr].st=st); 356 | while(1){n=strtoi(l1,&l2);if(l2==l1)break;l1=l2;put1(n);} 357 | continue; 358 | } 359 | l1=strstr(ip,"NT ");if(l1){ 360 | tri[tr].pt=tt;tri[tr].et=-1; 361 | n=strton(l1+3,&l1);l1=getns(l1); 362 | if(strncmp(l1,"on",2)==0){ 363 | assrt(n>=0,"can't have rest and 'on'"); 364 | st=0x90+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 365 | l2=strstr(l1,"von=");if(l2)tri[tr].von=strtoi(l2+4,0); 366 | assrt(tri[tr].von>=1&&tri[tr].von<128,"von out of range"); 367 | put1(n);put1(tri[tr].von); 368 | continue; 369 | } 370 | if(strncmp(l1,"off",3)==0){ 371 | l2=strstr(l1,"voff=");if(l2)t=strtoi(l2+5,0); else t=0x40; 372 | assrt(t>=0&&t<128,"voff out of range"); 373 | if(t!=0x40){/* not most efficient coding, but most likely to mimic convention used by others(?) */ 374 | st=0x80+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 375 | put1(n);put1(t); 376 | }else{ 377 | st=0x90+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 378 | put1(n);put1(0); 379 | } 380 | continue; 381 | } 382 | d=getfrn(l1,tpc);if(d=0); 385 | l2=strstr(l1,"von=");if(l2)tri[tr].von=strtoi(l2+4,0); 386 | assrt(tri[tr].von>=1&&tri[tr].von<128,"von out of range"); 387 | st=0x90+ch;if(st!=tri[tr].st)put1(tri[tr].st=st); 388 | put1(n);put1(tri[tr].von); 389 | if(d0){non-=i;memmove(nob,nob+i,non*sizeof(noteoffbuf));} 421 | fprintf(stderr,"Successfully parsed\n"); 422 | fwrite(tri[tracks].out,1,tri[tracks].op,stdout); 423 | for(tr=0;tr 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #define MIN(x,y) ((x)<(y)?(x):(y)) 39 | #define MAX(x,y) ((x)>(y)?(x):(y)) 40 | 41 | #define MAXLL 10000 42 | #define MAXCH 16 43 | #define MAXNT 128 44 | unsigned char *dat; 45 | int p,siz,pr=0,raw,cro,fol,sep,frpad=9; 46 | int bgn[12][2]={{0,0},{0,1},{1,0},{2,-1},{2,0},{3,0},{3,1},{4,0},{4,1},{5,0},{6,-1},{6,0}}; 47 | /* ^ best guess note from pitch relative to keynote: (In C maj/A min this would be: C C# D Eb E F F# G G# A Bb B) */ 48 | int maj[14]={0,2,4,5,7,9,11, 12,14,16,17,19,21,23}; 49 | 50 | void err(char *l){fprintf(stderr,"Error: %s\n",l);exit(1);} 51 | #define assrt(x,y) if(!(x))err(y); 52 | 53 | char *note2(int n,int s,int pad){ 54 | static char buf[100][20]; 55 | static int p=0; 56 | int i; 57 | p=(p+1)%100; 58 | buf[p][0]="CDEFGAB"[(n+700000)%7]; 59 | i=1; 60 | while(s>0){assert(i<19);buf[p][i++]='#';s--;} 61 | while(s<0){assert(i<19);buf[p][i++]='b';s++;} 62 | while(n>=7){assert(i<19);buf[p][i++]='\'';n-=7;} 63 | while(n<0){assert(i<19);buf[p][i++]='-';n+=7;} 64 | if(pad)while(i=0&&n<128&&sf>=-128&&sf<=127); 71 | a0=(4*sf+7000)%7;b0=(sf+7001)/7-1000;/* (a0,b0) = keynote of (sf,mi) in pair form */ 72 | n-=60+maj[a0]+b0;/* subtract keynote in single pitch form */ 73 | m=(n+120000)%12;a=bgn[m][0];b=bgn[m][1];/* look up most likely pair form */ 74 | return note2(a0+a+((n-m)/12)*7,maj[a0]+maj[a]-maj[a0+a]+b0+b,pad);/* evaluate cocycle! */ 75 | } 76 | char *key(int sf,int mi,int pad){ 77 | static char buf[100][21]; 78 | static int p=0; 79 | int i,n; 80 | p=(p+1)%100; 81 | assert(sf>=-128&&sf<=127); 82 | if(mi)sf+=3; 83 | buf[p][0]="FCGDAEB"[(sf+7001)%7]; 84 | n=(sf+7001)/7-1000;i=1; 85 | while(n>0){buf[p][i++]='#';n--;} 86 | while(n<0){buf[p][i++]='b';n++;} 87 | while(ix0*m){ 119 | t=(int)(r/m); 120 | l1+=sprintf(l1,"%d",t);r-=t*m; 121 | if(dp){ 122 | l1+=sprintf(l1,"."); 123 | for(i=0;isiz){fprintf(stderr,"Unexpected EOF in %s, p=&%06x n=%d siz=&%06x\n",l,p,n,siz);exit(1);} 135 | } 136 | void skip(int n){need(n,"skip");p+=n;} 137 | void match(char *l){ 138 | int i; 139 | need(strlen(l),"match"); 140 | for(i=0;l[i];i++)if(l[i]!=dat[p++]){ 141 | fprintf(stderr,"Bad match, p=%X i=%d l=%s &%02X!=&%02X\n",p,i,l,l[i],dat[p-1]);exit(1); 142 | } 143 | } 144 | int getn(int n,int a){ 145 | int i,t; 146 | need(n,"getn"); 147 | for(i=0,t=0;i=0x80)st=get1(); else assert(st>=0x80); 172 | sth=st>>4; 173 | if(sth==8||(sth==9&&dat[p+1]==0))skip(2); else {p=p0;return dt;} 174 | } 175 | return -1; 176 | } 177 | 178 | typedef struct {int tt,ch,nt,voff;} noteoffbuf; 179 | int cmp(const void*x,const void*y){return ((noteoffbuf*)x)->tt-((noteoffbuf*)y)->tt;} 180 | 181 | int main(int ac,char **av){ 182 | int i,s,t,u,bf,bn,btt,fol1,rest,ch,dt,infinity,ln,mi,maxno,nat,non,ols,prb,help, 183 | sk,sf,st,sth,tis0,tis1,tis2,tpc,tr,trl,tt,ty,alltrfl,format,tracks,division,tempo,nobp[MAXCH][MAXNT]; 184 | char l[MAXLL],*l1; 185 | double ert; 186 | typedef struct {int a,p0,l,e,p,pv,st,dt,tt,et,pt;} trackinfo; 187 | typedef struct fred {int all,bn,tr;char *l;struct fred *nx;} outline; 188 | trackinfo *tri; 189 | noteoffbuf *nob; 190 | outline *outbuf0,*outbuf; 191 | FILE *fpi; 192 | 193 | raw=cro=fol=sep=help=0; 194 | for(i=1;i textfile\n\n"); 203 | fprintf(stderr," Default timing is to use absolute time determined by BA+CR\n"); 204 | fprintf(stderr," and use durations for notes.\n"); 205 | fprintf(stderr,"-c Use absolute crotchets rather than BA+CR to determine time.\n"); 206 | fprintf(stderr," Useful if inserting or deleting.\n"); 207 | fprintf(stderr,"-f 'Follow' (take time from start or end of previous note) to determine time.\n"); 208 | fprintf(stderr,"-r \"raw\" format: time determined by DT, and note-off events\n"); 209 | fprintf(stderr," are used instead of note durations.\n\n"); 210 | fprintf(stderr," Default is to print all tracks merged in chronological order.\n"); 211 | fprintf(stderr,"-s Print all tracks separately.\n"); 212 | exit(1); 213 | } 214 | if(fol&&raw){fprintf(stderr,"fol and raw modes cannot be combined\n");exit(1);} 215 | fpi=fopen(av[ac-1],"rb");if(!fpi){fprintf(stderr,"Couldn't open %s\n",av[ac-1]);exit(1);} 216 | fseek(fpi,0,SEEK_END);siz=ftell(fpi);rewind(fpi); 217 | if(pr>=1)printf("# File size %d byte%s\n",siz,siz==1?"":"s"); 218 | dat=(unsigned char*)malloc(siz);if(!dat){fprintf(stderr,"Couldn't malloc %d bytes\n",siz);exit(1);} 219 | fread(dat,1,siz,fpi);p=0;fclose(fpi); 220 | maxno=siz/2; 221 | match("MThd"); 222 | assert(get4()==6); 223 | format=get2();tracks=get2();division=get2(); 224 | printf("format=%d tracks=%d division=%d\n",format,tracks,division); 225 | if(division&(1<<15))tpc=48; else tpc=division; 226 | tri=(trackinfo *)malloc(tracks*sizeof(trackinfo));assert(tri); 227 | nob=(noteoffbuf *)malloc(maxno*sizeof(noteoffbuf));assert(nob); 228 | infinity=0x7fffffff; 229 | 230 | for(tr=0;p=0x80)st=get1(); else assert(st>=0x80); 243 | sth=st>>4;ch=st&15; 244 | if(sth==8||sth==9){ 245 | t=get1();u=get1(); 246 | if(sth==9){if(u)continue; else u=0x40;} 247 | assert(non=0); 267 | if(tri[tr].a){ 268 | tri[tr].et=tri[tr].pt=0;tri[tr].dt=tri[tr].tt=t;tri[tr].p=p;tri[tr].pv=-1;nat++; 269 | } 270 | } 271 | sf=0;mi=0;/* Initial key C major */ 272 | tis0=4;tis1=4;tis2=(tis0*4*tpc)/tis1;/* Initial time signature 4/4 */ 273 | tempo=500000;/* Default usec/beat (= 120 bpm) */ 274 | btt=0;bn=0;bf=0;ert=0;/* at time btt, bar number was bn (from 0), and part of bar complete was bf/tpc crotchets */ 275 | prb=-1; 276 | ols=MAXLL*10;outbuf=outbuf0=(outline*)malloc(ols);outbuf->nx=0; 277 | if(!outbuf){fprintf(stderr,"Couldn't malloc %d bytes (outbuf1)\n",ols);exit(1);} 278 | while(nat>0){ 279 | tt=infinity;tr=-1;alltrfl=0; 280 | for(i=0;i=0); 285 | p=tri[tr].p;t=look1();if(t>=0x80)st=get1(); else st=tri[tr].st; 286 | sth=st>>4;ch=st&15; 287 | assert(!(raw==0&&(sth==8||(sth==9&&dat[p+1]==0)))); 288 | rest=(fol&&tri[tr].etbtt){ 292 | ert+=(double)(tt-btt)*(double)tempo/(double)tpc; 293 | /* Elapsed crotchets=(btt-tt)/tpc, ticks/bar=tis2 */ 294 | t=tt-btt+bf; bn+=t/tis2; bf=t%tis2; btt=tt; 295 | } 296 | if(!sep&&bn!=prb){l1+=sprintf(l1,"\n");prb=bn;} 297 | if(fol){ 298 | u=0; 299 | if(fol1)l1+=sprintf(l1,"FOL"); else { 300 | l1+=sprintf(l1,"SIM");t=tri[tr].tt-tri[tr].pt;if(t){ 301 | assert(t>0);l1+=sprintf(l1,"+");u=sprfrac(l1,t,tpc,1,0);l1+=u;u++; 302 | } 303 | } 304 | while(utt&&nob[i].ch==ch&&nob[i].nt==t)break; 331 | nobp[ch][t]=i; 332 | if(i=1&&ty<=7){ 359 | l1+=sprintf(l1,"Text type %d: \"",ty); 360 | for(i=0;i=128)sf-=256;mi=get1(); 395 | l1+=sprintf(l1,"Key %s %s\n",key(sf,mi,0),mi?"minor":"major"); 396 | alltrfl=1; 397 | goto bp1; 398 | } 399 | l1+=sprintf(l1,"Meta Event type &%02X ",ty); 400 | for(i=0;i=0){tri[tr].tt+=tri[tr].dt;tri[tr].p=p;} else {tri[tr].a=0;nat--;} 411 | bp2: 412 | if(sep){ 413 | s=l1-l+1;t=sizeof(outline);u=(s+t-1)/t; 414 | assert((u+1)*t<=MAXLL&&ols>=MAXLL); 415 | outbuf->tr=tr;outbuf->all=alltrfl;outbuf->bn=bn;outbuf->l=(char*)(outbuf+1); 416 | if(ols-(u+1)*tnx=(outline*)malloc(ols); 418 | if(!outbuf->nx){fprintf(stderr,"Couldn't malloc %d bytes (outbuf2)\n",ols);exit(1);} 419 | } else { 420 | outbuf->nx=outbuf+u+1;ols-=(u+1)*t; 421 | } 422 | memcpy(outbuf->l,l,s);outbuf=outbuf->nx;outbuf->nx=0; 423 | } else printf("%s",l); 424 | } /* main loop */ 425 | 426 | if(sep)for(tr=0;trnx;outbuf=outbuf->nx){ 430 | if((outbuf->all||outbuf->tr==tr)&&outbuf->bn!=prb){printf("\n");prb=outbuf->bn;} 431 | if(outbuf->all&&outbuf->tr!=tr)printf("# "); 432 | if(outbuf->all||outbuf->tr==tr)printf("%s",outbuf->l); 433 | } 434 | printf("\n"); 435 | } 436 | 437 | printf("# Successfully parsed\n"); 438 | printf("# Duration = %g seconds\n",ert/1000000); 439 | return 0; 440 | } 441 | -------------------------------------------------------------------------------- /overtone/tools/midiconverter/midiasciiconversion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | midi <-> ascii conversion 5 | 6 | 7 | 8 | 9 |

midi <-> ascii conversion - instructions

10 | 11 |
12 |

dictionary

13 | "crotchet" (UK English) = "quarter note" (US English). And "bar" = "measure". 14 |


15 |

ascii file format

16 |

Perhaps the easiest way to understand this is to look at examples 17 | generated by using mid2asc on midi files.

18 |

Each non-blank line is either a comment (starts with '#'), or an event.

19 |

The first item on an event line is the time the event occurs and can be determined in one 20 | of five ways: 21 | 22 | 23 | 24 | 25 | 26 | 27 |
(i) BA+CR Bar number+Crotchet within bar
(ii) CR Crotchet number from the very start
(iii) DT Delta time from previous event - native midi format
(iv) FOL[+/-crotchets] Time from end of previous note/rest on same track
(v) SIM[+crotchets] Time from start of previous note/rest on same track

28 |

In case (iii), the time is in units of 'ticks', in the other four 29 | cases the time is in units of crotchets using fractional notation, 30 | e.g., 3+5/6. The denominator must divide the overall division set at 31 | the start of the file (e.g., 384). Further time descriptions can 32 | occur in brackets after the first one and are ignored by asc2mid. 33 | They are just output by mid2asc to help to see where you are, and it 34 | is OK to edit the first time description even if this becomes 35 | inconsistent with subsequent the bracketed ones.

36 |

37 | On the line there must be a track number between 0 and 15 specified by "TR <number>", and 38 | a channel number between 1 and 16 specified by "CH <number>". 39 | All numbers are either decimal or hexadecimal when preceeded by "&" or "0x". 40 |

41 |

42 | After that you can either write (i) a generic midi event, (ii) a 43 | generic meta event, (iii) a generic sysex event, or (iv) an event 44 | which has been given a name. Most common events have a name: NT (play 45 | a note), Time signature, Channel volume, Instrument, End of track, 46 | Tempo, Key, Text. For example,

47 |

(i)

ST &A0 &3C &64

48 |

(ii)

Meta Event   type &7F   0 0 119 14 0
(don't put in length, asc2mid counts the data bytes.)

49 |

(iii)

Sysex Event   &F7   0 1 2 3
(don't put in length, asc2mid counts the data bytes.)

50 |

(iv)

Channel volume 100

51 |

Time signature 4/4, clocks/mtick 96, crotchets/32ndnote 8

52 |

NT  C''          3+1/2 von=80
53 | Turn on C two octaves above middle C, lasting 3+1/2 crotchets, with velocity 80 54 | (asc2mid will insert the corresponding note-off event at the right time).

55 |

NT  Bb--         on
56 | Turn on Bb one-and-a-bit octaves below middle C with velocity 57 | given by most recent von on same track.

58 |

NT  R            3
59 | Insert a rest of 3 crotchets on this track (this doesn't actually write 60 | any midi events. Its only effect is on the next FOL or SIM).


61 |

62 | The instrument numbers go from 1 to 128. It is up to the user to put in an "End track" at 63 | the end of every track. 64 |

65 |

mid2asc

66 | 67 |

Usage:

mid2asc [-c] [-f,-r] [-s] midifile > textfile

68 |

The -c, -f and -r flags affect how the timing of the event lines is specified.

69 |

The default (none of -c, -f or -r) outputs BA+CR type timings (item 70 | (i) in above ascii file format description). There is a slight complication in 71 | this case, because the time signature affects the meaning of bar 72 | number, and the time signature can change at any time on any track, 73 | and should affect all tracks. This shouldn't cause any trouble, but 74 | to guide the eye when the time signature changes on some track, 75 | mid2asc outputs a comment line on every track. By the way, bar numbers 76 | start from 1 in keeping with usual conventions, but all other timing 77 | stuff starts from 0.

78 |

-c mode outputs pure CR timings (crotchet number from very start - item (ii) in 79 | above ascii file format description).

80 |

-r mode outputs DT (delta time) timings (ticks from previous event - item (iii) in 81 | above ascii file format description).

82 |

-f mode outputs FOL, SIM or SIM+number timings (relative to end or start of previous note - items (iv), (v) in above ascii file format description).

83 |

-s causes tracks to be output separately.

84 |

asc2mid

85 |

Usage:

asc2mid textfile > midifile

86 |

87 | Makes a midi file when given an ascii file in the format described 88 | above. It requires all lines corresponding to a given track to be in 89 | chronological order. (It's possible to drop this restriction, if all 90 | events are specified by the CR method, by presorting the lines.) Lines 91 | from different tracks can be separated or interleaved in any way. 92 |

93 |

Other stuff

94 |

The midi file format has slight redundancies so the representation 95 | is ambiguous. For example events occuring at the same time can 96 | sometimes be swapped; using running st mode is a matter of choice; 97 | using 0x8* or 0x9* for voff when velocity=0x40 is a matter of choice; 98 | there is allowed to be any junk after the end of the tracks. This 99 | means that applying mid2asc then asc2mid won't necessarily get you 100 | back to where you started. However, the choices asc2mid and mid2asc 101 | make are meant to be 'stable', so applying asc2mid, mid2asc then 102 | asc2mid should be the same as applying asc2mid. Also mid2asc asc2mid 103 | mid2asc should be the same as mid2asc.

104 |



Back up a level 105 | 106 | 107 | -------------------------------------------------------------------------------- /tidal/awesome.tidal: -------------------------------------------------------------------------------- 1 | -- swing.tidal 2 | -- (c) 2017 by Milan Gruner 3 | 4 | bps (90/60) 5 | 6 | -- plain awesome 7 | d1 $ slow 2 $ stack [ 8 | density 2 $ sound (samples "[bd:3(3,8), sn:3(2,8,6)]" "0 1 1 3 2") 9 | # delay "0.8" 10 | # pan (scale 0.25 0.75 rand) 11 | # shape (scale 0.2 0.3 sine1), 12 | every 4 (density 4) $ sound "arpy(5,8,2)" 13 | # sustain "2" 14 | # attack "0.3" 15 | # n "1 2 3 7 8 6 3 4 4 4 4" 16 | # shape "0.6", 17 | every 2 (density 2) $ sound (samples "hh(14,16,4) hh" (irand 13)) 18 | # shape (scale 0.2 0.6 sine1) 19 | # sustain sine1 20 | ] 21 | 22 | d1 $ stack [ 23 | every 4 (density 2) $ sound "[kd:2 (5,6,1), sn:6 (5,6,3), hh 12 (5,6,2)]" 24 | # shape (scale 0.2 0.6 saw), 25 | sound "bass:6(5,6)" # n "5 7 3 5 8 5 9 1" # shape (scale 0.2 0.8 saw1) 26 | ] 27 | 28 | d2 $ stack [ 29 | every 4 (0.25 <~) $ sound "hh*12" # shape "0.8" # attack (scale 0.01 0.2 sine1), 30 | every 3 (density 1) $ sound "bass:6(3,3,0)" 31 | # n "3 1 3 1 5 1 " 32 | # shape "0.9" 33 | ] 34 | 35 | d2 silence 36 | 37 | hush 38 | -------------------------------------------------------------------------------- /tidal/bjorklund.tidal: -------------------------------------------------------------------------------- 1 | -- bjorklund.tidal 2 | -- (c) 2017 by Milan Gruner 3 | 4 | bps (210/60) 5 | 6 | hush 7 | 8 | d1 $ e 5 9 $ sound "bd:3 sn:2 hh hh" # shape "0.4" 9 | d2 $ sound "bd:3(4,8)" 10 | 11 | d1 $ e 5 17 2 $ sound "bd [sn*2, hh]" 12 | 13 | d1 $ sound "sn:3([13 6 3]/2,8)" 14 | 15 | d1 $ sound "[bd(3,8) , sn(4,9) , hh(5,11)]" 16 | 17 | -- try them out here: 18 | d1 $ slow 1 $ sound "sn:1(3,4,1)?" 19 | d2 $ slow 1 $ sound "bd:2(3,4,2)" 20 | 21 | d1 $ sound (samples "bd*2 sn bd sn" "3 2 3 1") 22 | 23 | -- awesomely animated hihat drill 24 | d2 $ sound "hh*16 rd" # pan sine1 # shape (scale 0.2 0.6 sine1) # cutoff (scale 600 10000 sine1) 25 | 26 | d3 $ sound "[arpy*5, arpy*4] ~ arpy*2" # shape "0.2" 27 | 28 | d3 $ slow 1 $ sound (samples "sn(5,9)" "1 8 7 15 6 8") # shape (scale 0.2 0.3 sine1) # cutoff "500" # sustain "1.0 0.5 ~ 1" # resonance "0.2" 29 | 30 | d3 silence 31 | 32 | hush 33 | 34 | -- folk rhythms 35 | -- created by Bjorklund's algorithm 36 | -- originally intended for nuclear physics :D 37 | -- used with e function => e a b $ 38 | -- or just drum(a,b) in rhythm 39 | 40 | -- special 41 | 4 11 Frank Zappa - Outside Now 42 | 5 11 Moussorgsky - Pictures at an Exhibition 43 | 7 8 bendir frame drum rhythm 44 | -- southern european 45 | 3 7 bulgarian ruchenitza 46 | 4 7 bulgarian ruchenitza 47 | 4 9 turkey aksak 48 | 3 5 2 persian or rumanian folk dance 49 | -- african 50 | 7 12 west african bell pattern 51 | 9 16 central african republic - rhythm necklace 52 | 11 24 14 central africa - aka pygmies rhythm necklace 53 | 13 24 5 another aka pygmies of the upper sangha rhythm necklace 54 | 5 12 south african venda clapping pattern 55 | -- arab 56 | 5 6 arab York-Samai 57 | 5 7 arab nawakhat 58 | 5 9 arab Agsag-Samai 59 | 2 5 persian khafif-e-ramal 60 | -- latin 61 | 5 8 cuban cinquillo 62 | 3 8 cuban tresillo 63 | 5 16 brazil bossa nova 64 | 3 4 cumbia (colombia) 65 | 7 16 14 brazil samba 66 | -------------------------------------------------------------------------------- /tidal/drumulous.tidal: -------------------------------------------------------------------------------- 1 | -- drumulous.tidal 2 | -- (c) 2017 by Milan Gruner 3 | 4 | bps (120/60) 5 | hush 6 | d1 silence 7 | d2 silence 8 | 9 | d1 $ sound (samples "[bd*7 bd kd hh, sn sn hh*2 sn*8 sn] " "0 0 0 1 0 2 0") # shape "0.7" # pan (scale 0.25 0.75 sine1) 10 | 11 | d1 $ slow 1 $ sound "[kd:2(10,9,2) sn:7(4,9,3) hh(15, 18, 2)]" 12 | # shape (scale 0.3 0.7 sine1) 13 | # pan (scale 0.25 0.75 sine1) 14 | # sustain (scale 1 3 saw1) 15 | 16 | d1 $ stack [ 17 | every 4 (density 0.25) $ sound "bd(7,8,2)", 18 | every 4 (e 15 20) $ sound "sn", 19 | sound "sn(20,24,5)" 20 | ] 21 | 22 | d2 $ slow 1 $ sound (samples "arpy(7,9,2)" (irand 16)) 23 | # shape (scale 0.2 0.4 sine1) 24 | # sustain (scale 0.1 0.8 sine1) 25 | -- # hpf "600 1200 1800 100 200" 26 | 27 | d2 silence 28 | -------------------------------------------------------------------------------- /tidal/dubbalicious.tidal: -------------------------------------------------------------------------------- 1 | -- dubbalicious.tidal 2 | -- (c) 2017 Milan Gruner 3 | 4 | bps (120/60) 5 | 6 | hush 7 | 8 | d1 $ stack [ 9 | every 2 (0.5 <~) $ slowcat [ 10 | sound "~ sn*14 ~ sn ~ bd sn*2" # speed (rand), 11 | sound "bd*16 ~" # speed sine1, 12 | sound "sn:3*8" # speed (rand) 13 | ], 14 | every 3 (density 0.5) $ sound "hh*8" # shape (scale 0.2 0.7 sine1), 15 | sound "bd:5(4,11)?" # shape "0.7" # pan sine1, 16 | every 4 (density 0.5) $ sound (samples "arpy(6,12,3)" (irand 6)) # sustain "0.4" # shape (scale 0.2 0.6 sine1) 17 | ] 18 | 19 | -- crazy hihat animation 20 | d1 $ stack [ 21 | every 4 (density 0.5) $ slowcat [ 22 | sound (samples "[bd:2(3,8), sn:3(3,8,2), hh:1*8]" "1") # shape tri1 # pan (scale 0.25 0.75 saw1), 23 | density 2 $ sound (samples "[hh*16, sn:3*2 bd:4*2] hh*16 hh*8" "4 5 2 6 4 7 2") # shape (scale 0.2 0.4 sine1) # speed (scale 0.2 0.6 sine1) 24 | ], 25 | every 2 (0.5 ~>) $ sound "hh:8(8,12)" # shape "0.7" # pan sine1 # speed (scale 0.2 3 saw1) # resonance "2", 26 | sound "bd sn bd sn" 27 | ] 28 | 29 | d1 $ slow 2 $ sound "bd ~ hh bd ~ sn:3 ~ ~ bd*4 ~ hh ~ sn*2 ~ hh" # delay "0" 30 | 31 | -- quirky half-step rhythm 32 | d1 $ stack [ 33 | slow 2 $ slowcat [ 34 | sound (samples "[lbass:6(7,8,6)?, lsn:7(1,8,3), lkd:7(3,8,1)]" "2 3 3 1 3 2 6") 35 | # shape "0.8 0.2 0.6 0.3" 36 | # shape (scale 0.4 0.4 tri1) 37 | # sustain "0.6", 38 | sound (samples "[lbass:6(2,8,6)?, lsn:7(3,8,1), lkd:7(5,8,3)]" "4 3 1 3 1 4 6 8 7 3") 39 | # shape "0.2 0.6 0.3 0.4" 40 | # shape (scale 0.4 0.7 sine1) 41 | # sustain "0.6" 42 | ], 43 | slow 4 $ sound (samples "[lhh:7(12,16,4)]" (irand 19)) 44 | # shape "0.4" 45 | # speed (scale 0.1 2 sine1) 46 | # sustain "0.7", 47 | d1 $ slow 2 $ sound "lhh:7(11,16,2)" # sustain "0.7" # delay "0.3" # pan (scale 0.05 0.95 sine1) 48 | d2 $ slow 2 $ sound "latmo:4" 49 | ] 50 | 51 | d1 silence 52 | hush 53 | 54 | -- fuckaaa rhythm (best!) 55 | d1 $ slow 2 $ stack [ 56 | density 2 $ sound (samples "[bd(3,8), sn(2,8,6)]" "0 1 1 3 2") 57 | # delay "0.8" 58 | # pan (scale 0.25 0.75 rand) 59 | # shape (scale 0.3 0.4 sine1), 60 | every 4 (density 4) $ sound (samples "bass1(4,8,2)" (irand 20)) 61 | # sustain "0.8" 62 | # shape "0.4", 63 | every 8 (density 4) $ sound (samples "hh(14,16,4) hh" (irand 16)) 64 | # shape (scale 0.2 0.4 sine1) 65 | ] 66 | 67 | hush 68 | 69 | -- quirky melody+drill combination 70 | d2 $ slow 4 $ sound (samples "sn*12 casio*7 sn cp bd*14" "1 3 4 7 8 3") # speed (scale 0.5 2 rand) 71 | d2 silence 72 | -------------------------------------------------------------------------------- /tidal/experiments.tidal: -------------------------------------------------------------------------------- 1 | -- experiments.tidal 2 | -- (c) 2017 by Milan Gruner 3 | 4 | hush 5 | 6 | -- set cycles per second 7 | cps 1 8 | -- set tempo of 120 BPM 9 | bps (140/60) 10 | 11 | d1 $ sound "arpy:5(7,5,2)" # up (run 5) # shape "0.8 0.2 0.1 0.7" 12 | 13 | d1 $ sound "sn:3*64" # shape tri1 # pan sine1 -- # speed (run 8) 14 | 15 | d1 $ sound "bd*16 sn*8" # pan sine1 # speed (density 2.5 $ tri1) 16 | 17 | -- crazy sweeping rhythm 18 | d2 $ stack [ 19 | sound "bd*2 cp sn:2*8 bd:3*6" # speed (scale 7 8 $ tri1) # pan sine1, 20 | sound "hh*32" # cutoff (scale 500 1220 $ slow 2 $ sine1) # resonance "0.7" 21 | ] 22 | -- sound "arpy(6,8) . [sn*5? cp:1*10]" # speed (scale 2 2 $ sine1) # delay "0.5 0.8 0.2 1.0" 23 | 24 | -- multi bar pattern 25 | d1 $ slowcat [ 26 | sound "cp*2 sn*3" # vowel "[a e i o e]" # pan sine1, 27 | sound "cp*2 sn*3" # vowel "[u u a o e]" # pan sine1 # shape (scale 0.3 0.7 sine1), 28 | sound "cp*2 sn*3" # vowel "[o i i i e]" # pan sine1, 29 | sound (samples "drum*4" "0 1 2 3 4 4") # shape (scale 0.3 0.7 sine1) 30 | ] 31 | 32 | -- multi sound pattern 33 | d2 $ stack [ 34 | --sound "arpy*8" # speed "0.5 1.0 0.5 1.0", 35 | d2 $ sound "arpy(5,6,12)" # speed rand # shape rand 36 | ] 37 | 38 | d1 silence 39 | 40 | -- time shifting/ shuffling 41 | d1 $ stack [ 42 | every 3 (0.25 <~) $ sound "bd*2 sn:3*2 hh sn", 43 | every 3 (0.25 ~>) $ sound "bd sn:3 hh sn*2", 44 | every 6 (0.5 ~>) $ sound "sn:3*2 sn hh bd" 45 | ] 46 | 47 | d3 $ sound (samples "bd*8?" "0 1 1 2 4*3 3") # speed "43 3 50 1 50 1 4 50" # pan sine1 48 | 49 | -- random melody 50 | d2 $ s "arpy*8?" # n (irand 37) # delay "0.8" # shape sine1 51 | 52 | d2 $ s "arpy(7,8,2)" # n "37 30 27 18 19 22 27 37 35" # delay "0.8" # shape sine1 53 | 54 | hush 55 | -------------------------------------------------------------------------------- /tidal/samba_for_the_salsa.tidal: -------------------------------------------------------------------------------- 1 | -- swing.tidal 2 | -- (c) 2017 by Milan Gruner 3 | 4 | bps (140/60) 5 | 6 | # samba 7 | 7 16 14 8 | 9 | d1 $ slowcat [ 10 | stack [ 11 | sound "lbd(7,16,14)" # shape "0.7", 12 | sound "lhh(12,16,14)" # shape "0.3", 13 | sound "arpy(3,16,14)" # shape "0.5" 14 | ], 15 | stack [ 16 | sound "lbd(7,16,14)?" # shape "0.7", 17 | sound "lhh(12,16,14)?" # shape "0.3", 18 | sound "arpy(8,16,14)" # shape "0.5" 19 | ] 20 | ] 21 | 22 | -- just for reference 23 | d1 $ slow 2 $ stack [ 24 | density 2 $ sound (samples "[bd:3(3,8), sn:3(2,8,6)]" "0 1 1 3 2") 25 | # delay "0.8" 26 | # pan (scale 0.25 0.75 rand) 27 | # shape (scale 0.2 0.3 sine1), 28 | every 4 (density 4) $ sound "arpy(5,8,2)" 29 | # sustain "2" 30 | # attack "0.3" 31 | # n "1 2 3 7 8 6 3 4 4 4 4" 32 | # shape "0.6", 33 | every 2 (density 2) $ sound (samples "hh(14,16,4) hh" (irand 13)) 34 | # shape (scale 0.2 0.6 sine1) 35 | # sustain sine1 36 | ] 37 | -------------------------------------------------------------------------------- /tidal/striation.tidal: -------------------------------------------------------------------------------- 1 | -- striation.tidal 2 | -- (c) 2017 by Milan Gruner 3 | -- inspired by kindohm (Mike Hodnik) 4 | 5 | bps (180/60) 6 | 7 | sound "lkd lcp [~ lkd] lcp", 8 | sound "lhh*8", 9 | 10 | d1 $ slow 2 $ slowcat [ 11 | sound "amen:1", 12 | sound "amen:5", 13 | sound "[amen:4 amen:2]", 14 | sound "[amen:3, amen:6]" 15 | ] 16 | 17 | # shape "0.7" 18 | # sustain "0.0" 19 | 20 | sound "[amen:4, amen:2] amen:5 amen:1" 21 | 22 | d1 $ stack [ 23 | every 3 (0.25 ~>) 24 | $ within (0.25, 0.75) (density 2) 25 | $ within (0.75, 1) (|+| speed "1.25") 26 | $ degradeBy 1 27 | $ slow 16 28 | $ striate 128 29 | $ sound "amen:2" -- :146 is max 30 | |+| delay "0.4" 31 | ] 32 | |+| delayfeedback "0.4" 33 | |+| delaytime "0.48" 34 | 35 | hush 36 | -------------------------------------------------------------------------------- /tidal/test.tidal: -------------------------------------------------------------------------------- 1 | d1 $ sound "bd sn" 2 | -------------------------------------------------------------------------------- /tidal/tutorial.tidal: -------------------------------------------------------------------------------- 1 | -- tutorial.tidal 2 | -- (c) 2017 by Milan Gruner 3 | -- Lots of random sounds! :D 4 | 5 | bps (120/60) 6 | 7 | hush 8 | 9 | d1 $ sound "bd:3 sn:2 bd:2 [bd sn:3 sn:3 bd:3]" 10 | d2 $ sound "hh hh hh hh" 11 | d3 12 | $ sound "arpy(6,8)" 13 | # speed "[1 0.5, 1.5 2 3 4 7 2 8 10 12]" 14 | # shape "0.8" 15 | # resonance "0.9" 16 | # attack "0 1 0.5 0.2 1" 17 | d3 18 | $ sound "arpy*3 cp" 19 | # speed "[1 0.5, 1.5 2 3 4]" 20 | 21 | d1 silence 22 | 23 | d1 $ sound "[bd sn sn, hh hh hh hh] bd sn bd" 24 | d2 $ sound "[bd bd] [bd [sn sn], sn], sn bd]" 25 | 26 | d2 $ slow 2 $ sound "arpy*12" # up "2 7 4 3 1 8 9 10 4 5 6 7" 27 | 28 | d1 $ sound "bd(3,8) sn(5,8,2)" # up "4 6 8 12" 29 | 30 | hush 31 | 32 | d1 $ sound "bd bd . sn sn sn . bd sn bd sn" 33 | 34 | d1 $ sound "[bd bd bd, [sn sn] cp, arpy [arpy arpy] arpy arpy, odx]" 35 | 36 | d1 $ sound "bd bd:4*2 cp sn" 37 | d2 $ sound "arpy*10 hh arpy*10 cp sn" # speed "[1 0.5, 1.5 2 3 4]" 38 | 39 | d1 $ density 1 $ sound "cp? bd:2*15 sn/2 bd:2? cp*5" 40 | d2 $ slow 2 $ rev (sound "[bd:2*15 sn:3*3? cp cp?]/2") 41 | 42 | d1 $ every 4 (density 4) $ sound "bd*2 [bd [sn sn*2 sn] sn]" 43 | 44 | d1 $ sound "bd*15 cp sn arpy*4 . cp cp" # gain "0.8" # delay "0.5" # shape "0.3" 45 | -------------------------------------------------------------------------------- /visuals/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | .stack-work/ 3 | TAGS 4 | *.cabal 5 | -------------------------------------------------------------------------------- /visuals/HelloHylogen.hs: -------------------------------------------------------------------------------- 1 | -- HelloHylogen.hs 2 | -- (c) 2017 by Milan Gruner 3 | -- Adapted from Hylogen example code 4 | 5 | module HelloHylogen where 6 | import Hylogen.WithHylide 7 | 8 | output :: Program 9 | output = toProgram color 10 | 11 | color :: Vec4 12 | color = vec4(a*0.7, a*0.2, a*0.3, 1) 13 | where 14 | k = 40 15 | f = (*k) . sin . cos . tan . (/k) 16 | a = sum [ 17 | cos(x_ uvN * f time + x_ mouse), 18 | sin(y_ uvN * f time + y_ mouse), 19 | atan(x_ uvN * f time + x_ mouse), 20 | tanh(y_ uvN * f time + y_ mouse)] 21 | -------------------------------------------------------------------------------- /visuals/Poop.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE FlexibleInstances #-} 2 | {-# LANGUAGE FlexibleContexts #-} 3 | {-# LANGUAGE GADTs #-} 4 | {-# LANGUAGE RankNTypes #-} 5 | 6 | module Poop where 7 | import Hylogen.WithHylide 8 | 9 | rot :: Vec1 -> Vec2 -> Vec2 10 | rot phi a = vec2 ( cos phi * (x_ a) 11 | + sin phi * (y_ a) 12 | , (-1) * sin phi * (x_ a) 13 | + cos phi * (y_ a) 14 | ) 15 | 16 | rep :: forall n. Veccable n => Vec n -> Vec n -> Vec n 17 | rep c p = mod_ p c - 0.5 * c 18 | 19 | mirrorX v = vec2 (abs (x_ v), y_ v) 20 | mirrorY v = vec2 (x_ v, abs(y_ v)) 21 | 22 | output = toProgram $ vec4 (r, g, b, 0.01) + bb 23 | where 24 | r = v 25 | & rep 2 26 | & (*0.1) 27 | & (/(x_ bb)) 28 | & negate 29 | g = v 30 | & rep 2 31 | & (*0.01) 32 | & (/(x_ bb)) 33 | & negate 34 | b = v 35 | & rep 2 36 | & (*0.1) 37 | & (/(x_ bb)) 38 | & negate 39 | v = (sin (atan ((y_ uvN' / x_ uvN' - x_ audio * len uvN')) / x_ uvN' - w_ audio)) + z_ audio 40 | uvN' = uvN 41 | & mirrorX 42 | & mirrorY 43 | & (rot (pi/2)) 44 | -- & (\x -> x - rep (copy $ w_ audio) x) 45 | & (^*(y_ audio * 5)) 46 | & (+(negate (mouse))) 47 | bb = texture2D backBuffer bbN 48 | bbN = uvN 49 | -- & (\x -> x - rep (copy $ w_ audio) x) 50 | & (*1.01) 51 | & mirrorX 52 | & mirrorY 53 | & rot (pi/2) 54 | & (\x -> x * 0.5 + 0.5) 55 | -------------------------------------------------------------------------------- /visuals/Regenbogenkotze.hs: -------------------------------------------------------------------------------- 1 | -- Regenbogenkotze.hs 2 | -- (c) 2017 by Milan Gruner 3 | -- adapted from: https://github.com/sleexyz/hylogen-fun/blob/master/CruelRainbow.hs 4 | 5 | {-# LANGUAGE GADTs #-} 6 | {-# LANGUAGE RankNTypes #-} 7 | {-# LANGUAGE FlexibleContexts #-} 8 | 9 | module Regenbogenkotze where 10 | 11 | import Util 12 | import Spirangle (spirangle) 13 | 14 | output = toProgram $ vec4 (0, 0, 0, 0) 15 | & const (vec4 (v, v, v, 1) ) 16 | & mix 0.1 bb 17 | 18 | bb = bbqF (texture2D backBuffer) uvN 19 | 20 | bbqF x = x 21 | & lmap (view norm) 22 | & lmap (rot (w_ audio * 100)) 23 | & lmap (*(x_ audio & copy)) 24 | & rgbF 0.1 25 | 26 | v = vqF vq uvN 27 | 28 | vqF x = x 29 | -- & lmap (mirrorX) 30 | 31 | beaty = beat 32 | 33 | vq uv = (1 - (sin (beaty)) * x_ (uv * 10) + cos (y_ uv * copy time)) 34 | & (* copy (x_ audio)) 35 | -------------------------------------------------------------------------------- /visuals/Spirangle.hs: -------------------------------------------------------------------------------- 1 | -- Spirangle.hs 2 | -- copied from https://github.com/sleexyz/hylogen-fun/blob/master/Spirangle.hs 3 | 4 | {-# LANGUAGE GADTs #-} 5 | {-# LANGUAGE RankNTypes #-} 6 | {-# LANGUAGE FlexibleContexts #-} 7 | 8 | module Spirangle where 9 | 10 | import Util 11 | 12 | 13 | 14 | output = toProgram (spirangle osc1) 15 | 16 | spirangle draw = rgba where 17 | rgba = (line) 18 | & (over (b2a bb)) 19 | & (clamp 0 1) 20 | 21 | bb = q (texture2D backBuffer) uvN 22 | 23 | q x = x 24 | & lmap (view norm) 25 | & lmap (rot ((negate 2 * pi /3) + muchless sin time )) 26 | & lmap (*1.1) 27 | & rmap (clamp 0 1) 28 | 29 | mask :: (Veccable n) => Vec n -> Vec n 30 | mask x = (x `gt` 0) ? (0, 1) 31 | 32 | gate :: (Veccable n) => Vec n -> Vec n -> Vec n -> Vec n 33 | gate s e x = ((x `geq` s) * (x `lt` e)) ? (1, 0) 34 | 35 | line :: Vec4 36 | line = vec4 (v, v, v, 1) 37 | v = 1 38 | & (*(gate (-0.35) (-0.33) (y_ uvN))) 39 | & (*(gate (-0.55) (0.65) (x_ uvN))) 40 | & (*draw) 41 | -------------------------------------------------------------------------------- /visuals/Util.hs: -------------------------------------------------------------------------------- 1 | -- Util.hs 2 | -- copied from https://github.com/sleexyz/hylogen-fun/blob/master/Util.hs 3 | 4 | {-# LANGUAGE RankNTypes #-} 5 | {-# LANGUAGE TypeFamilies #-} 6 | {-# LANGUAGE GADTs #-} 7 | 8 | module Util ( 9 | module Hylogen.WithHylide, 10 | module Data.Profunctor, 11 | module Util, 12 | ) where 13 | 14 | import Hylogen.WithHylide hiding (uv) 15 | import Data.Profunctor 16 | import Hylogen.Expr 17 | 18 | 19 | type Optic p s t a b = p a b -> p s t 20 | type Optic' p a b = Optic p a b a b 21 | type Iso s t a b = forall p. (Profunctor p) => Optic p s t a b 22 | type Iso' a b = Iso a b a b 23 | type Fold r s t a b = Optic (Forget r) s t a b 24 | type Getter s t a b = Fold a s t a b 25 | view :: forall s t a b. Getter s t a b -> s -> a 26 | view l = runForget (l (Forget id)) 27 | 28 | type Image = Vec2 -> Vec4 29 | 30 | (?) :: (ToGLSLType a) => Booly -> (Expr a, Expr a) -> Expr a 31 | (?) c (a, b) = sel c a b 32 | 33 | 34 | bw :: Vec1 -> Vec4 35 | bw v = vec4 (v, v, v, 1) 36 | 37 | rot :: Vec1 -> Vec2 -> Vec2 38 | rot phi a = vec2 ( cos phi * (x_ a) 39 | + sin phi * (y_ a) 40 | , (-1) * sin phi * (x_ a) 41 | + cos phi * (y_ a) 42 | ) 43 | 44 | over :: Vec4 -> Vec4 -> Vec4 45 | over x y = mix a x' y' 46 | where 47 | x' = clamp 0 1 x 48 | y' = clamp 0 1 y 49 | a = 1 - w_ x' 50 | 51 | less :: (Floating a) => Optic' (->) a a 52 | less = dimap (id) (*0.1) 53 | 54 | muchless :: (Floating a) => Optic' (->) a a 55 | muchless = dimap (id) (*0.01) 56 | 57 | norm :: (Floating a) => Iso' a a 58 | norm = dimap (\x -> x * 0.5 + 0.5) (\x -> x * 2 - 1) 59 | 60 | hsv :: Optic' (->) (Vec4) (Vec4) 61 | hsv = dimap rgb2hsv hsv2rgb 62 | 63 | rep :: forall n. Veccable n => Vec n -> Vec n -> Vec n 64 | rep c p = mod_ p c - 0.5 * c 65 | 66 | -- rgbF :: Vec1 -> (Vec2 -> Vec4) -> (Vec2 -> Vec4) 67 | rgbF :: Vec1 -> Optic' (->) Vec2 Vec4 68 | rgbF offset q pos = vec4 (r, g, b, a) 69 | where 70 | r = q (pos + copy offset) & x_ 71 | g = q pos & y_ 72 | b = q (pos - copy offset) & z_ 73 | a = q pos & w_ 74 | 75 | phi uv = atan (y_ uv/x_ uv) 76 | 77 | scale :: Floating a => a -> Iso' a a 78 | scale s = dimap (*s) (/s) 79 | 80 | mirrorX :: Vec2 -> Vec2 81 | mirrorX v = vec2 (abs $ x_ v, y_ v) 82 | 83 | 84 | mirrorY :: Vec2 -> Vec2 85 | mirrorY v = vec2 (x_ v, abs $ y_ v) 86 | 87 | wiggle :: Vec2 -> Vec2 88 | wiggle = rot (cos (time * 0.8) * 0.1) 89 | 90 | desat = hsv $ modY (*0.9) 91 | 92 | polar :: Iso' Vec2 Vec2 93 | polar = dimap c2p p2c where 94 | c2p :: Vec2 -> Vec2 95 | c2p v = vec2 (len v, phi v) 96 | p2c :: Vec2 -> Vec2 97 | p2c v = x_ v *^ vec2 (cos (y_ v), sin (y_ v)) 98 | 99 | 100 | -- fixme: make polymorphic 101 | modX :: (Vec1 -> Vec1) -> (Vec4 -> Vec4) 102 | modX f v = vec4 (f (x_ v), y_ v, z_ v, w_ v) 103 | modY :: (Vec1 -> Vec1) -> (Vec4 -> Vec4) 104 | modY f v = vec4 (x_ v, f (y_ v), z_ v, w_ v) 105 | modZ :: (Vec1 -> Vec1) -> (Vec4 -> Vec4) 106 | modZ f v = vec4 (x_ v, y_ v, f (z_ v), w_ v) 107 | modW :: (Vec1 -> Vec1) -> (Vec4 -> Vec4) 108 | modW f v = vec4 (x_ v, y_ v, z_ v, f (w_ v)) 109 | 110 | beat' :: Vec1 111 | beat' = 2 * pi * beat 112 | 113 | rand :: Vec1 -> Vec1 114 | rand x = x 115 | & sin 116 | & (*43758.543123) 117 | & fract 118 | 119 | rand2 :: Vec2 -> Vec2 120 | rand2 x = fract(sin(x <.> vec2(12.9898, 4.1414))) *^ 43758.5453 121 | 122 | b2a :: Vec4 -> Vec4 123 | b2a x = vec4 (xyz_ x, x_ x) 124 | 125 | gate :: (Veccable n) => Vec n -> Vec n -> Vec n -> Vec n 126 | gate s e x = ((x `geq` s) * (x `lt` e)) ? (1, 0) 127 | 128 | diff :: Floating a => (a -> a) -> (a -> a) 129 | diff f x = (f (x - delta) - f (x + delta))/(delta * 2) where 130 | delta = 0.00001 131 | 132 | 133 | grad :: (Vec2 -> Vec1) -> (Vec2 -> Vec2) 134 | grad f x = vec2 (dx, dy) where 135 | dx = f (vec2 (x_ x - delta, y_ x)) - f (vec2 (x_ x + delta, y_ x))/delta 136 | dy = f (vec2 (x_ x, y_ x - delta)) - f (vec2 (x_ x, y_ x - delta))/delta 137 | delta = 1 138 | 139 | bpf pos delta = hsv (modX (clamp (pos - delta) (pos + delta))) 140 | -------------------------------------------------------------------------------- /visuals/package.yaml: -------------------------------------------------------------------------------- 1 | name: algorithmuss-visuals 2 | source-dirs: ./ 3 | dependencies: 4 | - base 5 | - hylide 6 | - hylogen 7 | - vector-space 8 | - profunctors 9 | - lens 10 | library: {} 11 | -------------------------------------------------------------------------------- /visuals/stack.yaml: -------------------------------------------------------------------------------- 1 | flags: {} 2 | extra-package-dbs: [] 3 | packages: 4 | - '.' 5 | extra-deps: 6 | - hylide-0.1.5.0 7 | - hylogen-0.1.5.0 8 | resolver: lts-7.5 9 | --------------------------------------------------------------------------------