├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── Snippets ├── Classes.lua ├── Files&Bits.lua ├── Instruments.lua ├── Midi.lua ├── Osc.lua ├── PatternIterator.lua ├── SampleBuffer.lua ├── Sockets.lua └── TrackAutomation.lua ├── Tools ├── com.renoise.AutoMate.xrnx │ ├── changelog.md │ ├── classes │ │ ├── AutoMate.lua │ │ ├── AutoMateClip.lua │ │ ├── AutoMateGenerator.lua │ │ ├── AutoMateGenerators.lua │ │ ├── AutoMateLibrary.lua │ │ ├── AutoMateLibraryUI.lua │ │ ├── AutoMatePrefs.lua │ │ ├── AutoMatePreset.lua │ │ ├── AutoMatePresetManager.lua │ │ ├── AutoMateSandbox.lua │ │ ├── AutoMateSandboxArgument.lua │ │ ├── AutoMateSandboxManager.lua │ │ ├── AutoMateSandboxUI.lua │ │ ├── AutoMateUI.lua │ │ └── AutoMateUserData.lua │ ├── docs │ │ ├── AutoMate_class_diagram.uml │ │ └── ClassDiagram.png │ ├── images │ │ ├── AutomationList_Active.bmp │ │ ├── AutomationList_Empty.bmp │ │ ├── AutomationList_None.bmp │ │ ├── AutomationList_Unknown - Copy.bmp │ │ ├── AutomationList_Unknown.bmp │ │ ├── add.bmp │ │ ├── copy.bmp │ │ ├── delete.bmp │ │ ├── refresh.bmp │ │ ├── rename.bmp │ │ └── reveal_folder.bmp │ ├── main.lua │ ├── manifest.xml │ └── userdata │ │ └── generators │ │ ├── Linear Ramp.lua │ │ └── Sine Curve.lua ├── com.renoise.CreateTool.xrnx │ ├── LICENSE │ ├── formbuilder.lua │ ├── images │ │ ├── info.bmp │ │ └── link-icon.bmp │ ├── main.lua │ ├── manifest.xml │ ├── templates │ │ └── main.lua │ ├── zip.exe │ ├── zip.lua │ └── zip.txt ├── com.renoise.CustomPatternNavigation.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.CustomWave.xrnx │ ├── gui.lua │ ├── main.lua │ ├── manifest.xml │ └── operators.lua ├── com.renoise.Duplex.xrnx │ ├── Docs │ │ ├── Applications.md │ │ ├── Applications │ │ │ ├── Automateable.md │ │ │ ├── Effect.md │ │ │ ├── GridPie.md │ │ │ ├── Hydra.md │ │ │ ├── Instrument.md │ │ │ ├── Keyboard.md │ │ │ ├── Matrix.md │ │ │ ├── Metronome.md │ │ │ ├── MidiActions.md │ │ │ ├── Mixer.md │ │ │ ├── Mlrx.md │ │ │ ├── Navigator.md │ │ │ ├── NotesOnWheels.md │ │ │ ├── PatternCursor.md │ │ │ ├── PatternSequence.md │ │ │ ├── Recorder.md │ │ │ ├── Repeater.md │ │ │ ├── RoamingDSP.md │ │ │ ├── Rotate.md │ │ │ ├── StepSequencer.md │ │ │ ├── SwitchConfiguration.md │ │ │ ├── TrackSelector.md │ │ │ ├── Transport.md │ │ │ └── XYPad.md │ │ ├── Concepts.md │ │ ├── Configurations.md │ │ ├── Controllers.md │ │ ├── Controlmaps.md │ │ ├── FAQ.md │ │ ├── GettingStarted.md │ │ ├── Images │ │ │ ├── Config_launchpad_stepsequencer.png │ │ │ ├── Duplex_browser.png │ │ │ ├── Duplex_device_config_midi.png │ │ │ ├── Duplex_device_config_osc.png │ │ │ ├── Duplex_menu.png │ │ │ ├── Duplex_options.png │ │ │ ├── Duplex_signal_flow.png │ │ │ ├── GridPie_on_launchpad.png │ │ │ ├── Keyboard_devices.png │ │ │ ├── Keyboard_sample_mappings.png │ │ │ ├── Keyboard_scale_harmonic.gif │ │ │ ├── Keyboard_scale_isomorphic.gif │ │ │ ├── Recorder_on_launchpad.png │ │ │ ├── Repeater_on_remote_sl.png │ │ │ ├── XYPad_communication.gif │ │ │ ├── XYPad_devices.png │ │ │ ├── XYPad_roaming.gif │ │ │ ├── automation_mode_interleave.gif │ │ │ ├── automation_mode_punch_in.gif │ │ │ └── mlrx_on_monome.gif │ │ ├── Installation.md │ │ └── Resources.md │ ├── Duplex.lua │ ├── Duplex │ │ ├── Application.lua │ │ ├── Applications │ │ │ ├── Effect.lua │ │ │ ├── GridPie.lua │ │ │ ├── Hydra.lua │ │ │ ├── Instrument.lua │ │ │ ├── Keyboard.lua │ │ │ ├── Keyboard │ │ │ │ ├── GridLayout.lua │ │ │ │ └── Layouts │ │ │ │ │ ├── HarmonicLayout.lua │ │ │ │ │ ├── HarmonicWrapped.lua │ │ │ │ │ ├── IsomorphicLayout.lua │ │ │ │ │ └── PianoLayout.lua │ │ │ ├── Matrix.lua │ │ │ ├── Metronome.lua │ │ │ ├── MidiActions.lua │ │ │ ├── MidiActions │ │ │ │ └── Bindings.lua │ │ │ ├── Mixer.lua │ │ │ ├── Mlrx.lua │ │ │ ├── Mlrx │ │ │ │ ├── Mlrx_group.lua │ │ │ │ ├── Mlrx_note.lua │ │ │ │ ├── Mlrx_pos.lua │ │ │ │ ├── Mlrx_settings.lua │ │ │ │ ├── Mlrx_track.lua │ │ │ │ └── Mlrx_view.lua │ │ │ ├── Navigator.lua │ │ │ ├── NotesOnWheels.lua │ │ │ ├── PatternCursor.lua │ │ │ ├── PatternSequence.lua │ │ │ ├── Recorder.lua │ │ │ ├── Repeater.lua │ │ │ ├── Rotate.lua │ │ │ ├── StepSequencer.lua │ │ │ ├── SwitchConfiguration.lua │ │ │ ├── TrackSelector.lua │ │ │ ├── Transport.lua │ │ │ └── XYPad.lua │ │ ├── Automateable.lua │ │ ├── Browser.lua │ │ ├── BrowserProcess.lua │ │ ├── Canvas.lua │ │ ├── CanvasPoint.lua │ │ ├── ControlMap.lua │ │ ├── Controllers │ │ │ ├── APC20 │ │ │ │ ├── APC20.bmp │ │ │ │ ├── APC20.lua │ │ │ │ ├── Configurations │ │ │ │ │ ├── GridPieNavigatorTransportMixer.lua │ │ │ │ │ ├── MatrixNavigatorTransportMixer.lua │ │ │ │ │ ├── XYPadNavigatorTransportMixer.lua │ │ │ │ │ └── XYPad_Repeater.lua │ │ │ │ └── Controlmaps │ │ │ │ │ ├── APC20.xml │ │ │ │ │ └── APC20_XYPad_Repeater.xml │ │ │ ├── APC40 │ │ │ │ ├── APC40.bmp │ │ │ │ ├── APC40.lua │ │ │ │ ├── Configurations │ │ │ │ │ ├── GridPieEffectNavigatorTransportMixer.lua │ │ │ │ │ ├── MatrixEffectNavigatorTransportMixer.lua │ │ │ │ │ ├── XYPadEffectNavigatorTransportMixer.lua │ │ │ │ │ └── XYPad_Repeater.lua │ │ │ │ └── Controlmaps │ │ │ │ │ ├── APC40.xml │ │ │ │ │ ├── APC40_XYPad_Repeater.xml │ │ │ │ │ └── Copy of APC40.xml │ │ │ ├── Akai-MPK225 │ │ │ │ ├── Configurations │ │ │ │ │ └── MPK225.lua │ │ │ │ └── Controlmaps │ │ │ │ │ └── MPK225.xml │ │ │ ├── Akai-MPK49 │ │ │ │ ├── Akai-MPK49.bmp │ │ │ │ ├── Akai-MPK49.lua │ │ │ │ ├── Configurations │ │ │ │ │ └── MixerTransport.lua │ │ │ │ └── Controlmaps │ │ │ │ │ └── Akai-MPK49.xml │ │ │ ├── AkaiLPD8 │ │ │ │ ├── AkaiLPD8.bmp │ │ │ │ ├── AkaiLPD8.lua │ │ │ │ ├── Configurations │ │ │ │ │ ├── Effect.lua │ │ │ │ │ ├── GridPie.lua │ │ │ │ │ ├── Keypads.lua │ │ │ │ │ ├── Mixer.lua │ │ │ │ │ ├── NOW.lua │ │ │ │ │ └── XYPad.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── AkaiLPD8.xml │ │ │ │ │ ├── AkaiLPD8_GridPie.xml │ │ │ │ │ ├── AkaiLPD8_Keypad.xml │ │ │ │ │ ├── AkaiLPD8_NOW.xml │ │ │ │ │ └── AkaiLPD8_XYPad.xml │ │ │ │ └── Presets │ │ │ │ │ └── AkaiLPD8.preset │ │ │ ├── BCD-3000 │ │ │ │ ├── Configurations │ │ │ │ │ └── BDC-3000-Empty.lua │ │ │ │ └── Controlmaps │ │ │ │ │ └── BCD-3000.xml │ │ │ ├── BCF-2000 │ │ │ │ ├── BCF-2000.bmp │ │ │ │ ├── BCF-2000.lua │ │ │ │ ├── Configurations │ │ │ │ │ ├── BCF2000_Effect-NRPN.lua │ │ │ │ │ ├── BCF2000_Effect.lua │ │ │ │ │ ├── BCF2000_Mixer-NRPN.lua │ │ │ │ │ ├── BCF2000_Mixer.lua │ │ │ │ │ ├── BCF2000_NotesOnWheels.lua │ │ │ │ │ └── BCF2000_Recorder.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── BCF-2000-NRPN.xml │ │ │ │ │ ├── BCF-2000.xml │ │ │ │ │ ├── BCF-2000_Effect-NRPN.xml │ │ │ │ │ └── BCF-2000_Effect.xml │ │ │ │ └── Presets │ │ │ │ │ └── BCF-2000-NRPN.syx │ │ │ ├── BCR-2000 │ │ │ │ ├── BCR-2000.bmp │ │ │ │ ├── BCR-2000.lua │ │ │ │ ├── Configurations │ │ │ │ │ ├── BCR2000_MixerEffect-NRPN.lua │ │ │ │ │ ├── BCR2000_MixerEffect.lua │ │ │ │ │ ├── BCR2000_NotesOnWheels.lua │ │ │ │ │ └── BCR2000_RecorderEffect.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── BCR-2000-NRPN.xml │ │ │ │ │ ├── BCR-2000.xml │ │ │ │ │ └── BCR-2000_NOW.xml │ │ │ │ └── Presets │ │ │ │ │ └── BCR-2000-NRPN.syx │ │ │ ├── Custombuilt │ │ │ │ ├── Configurations │ │ │ │ │ ├── Matrix_Demo.lua │ │ │ │ │ ├── MidiActions_Demo.lua │ │ │ │ │ ├── NotesOnWheels.lua │ │ │ │ │ ├── NotesOnWheelsCompact.lua │ │ │ │ │ ├── RControl_TrackSelector.lua │ │ │ │ │ └── UISlider_Demo.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── Matrix.xml │ │ │ │ │ ├── MidiActions.xml │ │ │ │ │ ├── NOW_Controller.xml │ │ │ │ │ ├── NOW_Controller_compact.xml │ │ │ │ │ ├── R-control.xml │ │ │ │ │ └── UISlider_Demo.xml │ │ │ │ ├── Custombuilt.lua │ │ │ │ ├── NOW_Controller.bmp │ │ │ │ └── R-control.bmp │ │ │ ├── KONTROL49 │ │ │ │ ├── Configurations │ │ │ │ │ ├── Effect.lua │ │ │ │ │ ├── GridPie.lua │ │ │ │ │ └── Mixer.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── KONTROL49.xml │ │ │ │ │ └── KONTROL49_GridPie.xml │ │ │ │ ├── KONTROL49.bmp │ │ │ │ ├── KONTROL49.lua │ │ │ │ └── Presets │ │ │ │ │ ├── KONTROL49.k4d │ │ │ │ │ └── KONTROL49.k4s │ │ │ ├── Launch-Control-XL │ │ │ │ ├── Configurations │ │ │ │ │ ├── 01_Mutes.lua │ │ │ │ │ ├── 02_Solos.lua │ │ │ │ │ ├── 03_Transport.lua │ │ │ │ │ └── Default.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── 01_Mutes.xml │ │ │ │ │ ├── 02_Solos.xml │ │ │ │ │ ├── 03_Transport.xml │ │ │ │ │ └── Default.xml │ │ │ │ ├── Launch-Control-XL.bmp │ │ │ │ └── Launch-Control-XL.lua │ │ │ ├── Launchpad │ │ │ │ ├── Configurations │ │ │ │ │ ├── LaunchPad_GridPie.lua │ │ │ │ │ ├── LaunchPad_GridPieFull.lua │ │ │ │ │ ├── Launchpad_Drumpads.lua │ │ │ │ │ ├── Launchpad_Effect.lua │ │ │ │ │ ├── Launchpad_Keyboard.lua │ │ │ │ │ ├── Launchpad_Matrix.lua │ │ │ │ │ ├── Launchpad_Mixer.lua │ │ │ │ │ ├── Launchpad_MixerMatrix.lua │ │ │ │ │ ├── Launchpad_Mlrx.lua │ │ │ │ │ ├── Launchpad_MuteGrid.lua │ │ │ │ │ ├── Launchpad_Recorder.lua │ │ │ │ │ ├── Launchpad_Sequencer.lua │ │ │ │ │ └── Launchpad_XYPad.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── Launchpad-Recorder.xml │ │ │ │ │ ├── Launchpad.xml │ │ │ │ │ ├── Launchpad_Drumpads.xml │ │ │ │ │ ├── Launchpad_Effect.xml │ │ │ │ │ ├── Launchpad_GridPie.xml │ │ │ │ │ ├── Launchpad_GridPieFull.xml │ │ │ │ │ ├── Launchpad_Keyboard.xml │ │ │ │ │ ├── Launchpad_Matrix.xml │ │ │ │ │ ├── Launchpad_MatrixMixer.xml │ │ │ │ │ ├── Launchpad_Mixer.xml │ │ │ │ │ ├── Launchpad_Mlrx.xml │ │ │ │ │ ├── Launchpad_Recorder.xml │ │ │ │ │ ├── Launchpad_Split2.xml │ │ │ │ │ ├── Launchpad_StepSequencer.xml │ │ │ │ │ ├── Launchpad_VerticalSplit.xml │ │ │ │ │ └── Launchpad_XYPad.xml │ │ │ │ ├── Launchpad.bmp │ │ │ │ └── Launchpad.lua │ │ │ ├── LaunchpadMiniMK3 │ │ │ │ ├── Configurations │ │ │ │ │ ├── LaunchpadMiniMK3_GridPie.lua │ │ │ │ │ ├── LaunchpadMiniMK3_Recorder.lua │ │ │ │ │ └── LaunchpadMiniMK3_Sequencer.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── LaunchpadMiniMK3_GridPie.xml │ │ │ │ │ ├── LaunchpadMiniMK3_Recorder.xml │ │ │ │ │ └── LaunchpadMiniMK3_StepSequencer.xml │ │ │ │ ├── LaunchpadMiniMK3.bmp │ │ │ │ └── LaunchpadMiniMK3.lua │ │ │ ├── LividBase │ │ │ │ ├── Configurations │ │ │ │ │ └── LividBase-MixerMatrix.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── LividBase.xml │ │ │ │ └── LividBase.lua │ │ │ ├── MIDI-Fighter-Twister │ │ │ │ ├── Configurations │ │ │ │ │ └── MF_Twister_Effects.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── MF_Twister.xml │ │ │ │ └── Thumbnail.bmp │ │ │ ├── MIDI-Keyboard │ │ │ │ ├── Configurations │ │ │ │ │ ├── MIDI-Key_GridPie.lua │ │ │ │ │ ├── MIDI-Key_Keyboard.lua │ │ │ │ │ └── MIDI-Key_TripleStack.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── MIDI-Key_GridPie.xml │ │ │ │ │ ├── MIDI-Key_Keyboard.xml │ │ │ │ │ └── MIDI-Key_TripleStack.xml │ │ │ │ ├── MIDI-Keyboard.bmp │ │ │ │ └── MIDI-Keyboard.lua │ │ │ ├── MPD24 │ │ │ │ ├── Configurations │ │ │ │ │ └── MatrixMixerEffects.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── MPD24.xml │ │ │ │ ├── MPD24.bmp │ │ │ │ └── MPD24.lua │ │ │ ├── MPD26 │ │ │ │ ├── Configurations │ │ │ │ │ └── MixerMatrixEffectsTransport.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── MPD26-Generic.xml │ │ │ │ ├── MPD26.bmp │ │ │ │ └── MPD26.lua │ │ │ ├── MPD32 │ │ │ │ ├── Configurations │ │ │ │ │ ├── MixerMatrixEffectsTransport.lua │ │ │ │ │ └── PerformancePads.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── MPD32.xml │ │ │ │ │ └── MPD32_Pads.xml │ │ │ │ ├── MPD32.bmp │ │ │ │ └── MPD32.lua │ │ │ ├── Mackie-Control │ │ │ │ ├── Configurations │ │ │ │ │ ├── Mackie_MixerTransport.lua │ │ │ │ │ └── Mackie_RecorderTransport.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── Mackie-Control.xml │ │ │ │ ├── Mackie-Control.bmp │ │ │ │ └── Mackie-Control.lua │ │ │ ├── Monome │ │ │ │ ├── Configurations │ │ │ │ │ ├── m128_GridPie.lua │ │ │ │ │ ├── m128_Keyboard.lua │ │ │ │ │ ├── m128_KeyboardSingle.lua │ │ │ │ │ ├── m128_MatrixEffect.lua │ │ │ │ │ ├── m128_MixerTransport.lua │ │ │ │ │ ├── m128_Mlrx.lua │ │ │ │ │ ├── m128_Performance.lua │ │ │ │ │ ├── m128_RecorderMatrix.lua │ │ │ │ │ ├── m128_RecorderMixer.lua │ │ │ │ │ ├── m128_StepSequencer.lua │ │ │ │ │ ├── m128_XYPad.lua │ │ │ │ │ ├── m64_GridPie.lua │ │ │ │ │ ├── m64_Matrix.lua │ │ │ │ │ ├── m64_MixerTransport.lua │ │ │ │ │ ├── m64_Recorder.lua │ │ │ │ │ └── m64_StepSequencer.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── Monome128.xml │ │ │ │ │ ├── Monome128_GridPie.xml │ │ │ │ │ ├── Monome128_Keyboard.xml │ │ │ │ │ ├── Monome128_KeyboardSingle.xml │ │ │ │ │ ├── Monome128_MatrixEffect.xml │ │ │ │ │ ├── Monome128_Mixer.xml │ │ │ │ │ ├── Monome128_Mlrx.xml │ │ │ │ │ ├── Monome128_Performance.xml │ │ │ │ │ ├── Monome128_RecorderMatrix.xml │ │ │ │ │ ├── Monome128_RecorderMixer.xml │ │ │ │ │ ├── Monome128_StepSequencer.xml │ │ │ │ │ ├── Monome128_XYPad.xml │ │ │ │ │ ├── Monome64.xml │ │ │ │ │ ├── Monome64_GridPie.xml │ │ │ │ │ ├── Monome64_Matrix.xml │ │ │ │ │ ├── Monome64_Mixer.xml │ │ │ │ │ ├── Monome64_Recorder.xml │ │ │ │ │ └── Monome64_StepSequencer.xml │ │ │ │ ├── Monome.bmp │ │ │ │ ├── Monome.lua │ │ │ │ └── README.md │ │ │ ├── Nocturn │ │ │ │ ├── Configurations │ │ │ │ │ ├── Nocturn_Effect.lua │ │ │ │ │ ├── Nocturn_Hydra.lua │ │ │ │ │ ├── Nocturn_Mixer.lua │ │ │ │ │ ├── Nocturn_MixerTransport.lua │ │ │ │ │ ├── Nocturn_Navigator.lua │ │ │ │ │ ├── Nocturn_NotesOnWheels.lua │ │ │ │ │ ├── Nocturn_Recorder.lua │ │ │ │ │ ├── Nocturn_TrackSelector.lua │ │ │ │ │ └── Nocturn_XYPad.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── Nocturn.xml │ │ │ │ ├── Nocturn.bmp │ │ │ │ ├── Nocturn.lua │ │ │ │ └── Presets │ │ │ │ │ └── Nocturn.automap │ │ │ ├── Ohm64 │ │ │ │ ├── Configurations │ │ │ │ │ ├── MixerMatrixEffects.lua │ │ │ │ │ ├── MixerMatrixEffectsSwitch.lua │ │ │ │ │ ├── SequencerNavigatorMixerEffects.lua │ │ │ │ │ └── SequencerNavigatorMixerEffectsSwitch.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── Ohm64.xml │ │ │ │ ├── Ohm64.bmp │ │ │ │ └── Ohm64.lua │ │ │ ├── OhmRGB │ │ │ │ ├── Configurations │ │ │ │ │ ├── MixerMatrixEffects.lua │ │ │ │ │ └── SequencerNavigatorMixerEffects.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── OhmRGB.xml │ │ │ │ ├── OhmRGB.bmp │ │ │ │ └── OhmRGB.lua │ │ │ ├── Oxygen88 │ │ │ │ ├── Configurations │ │ │ │ │ └── O88-Cursor.lua │ │ │ │ └── Controlmaps │ │ │ │ │ └── Oxygen88.xml │ │ │ ├── QuNeo │ │ │ │ ├── Configurations │ │ │ │ │ └── QuNeo_test.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── QuNeo_default.xml │ │ │ │ ├── QuNeo.lua │ │ │ │ ├── quneo.bmp │ │ │ │ ├── renoise.quneopreset │ │ │ │ └── renoise_new2.quneopreset │ │ │ ├── Remote-SL-MKII │ │ │ │ ├── Configurations │ │ │ │ │ ├── MixerEffectsTransport.lua │ │ │ │ │ ├── MixerRecorderTransport.lua │ │ │ │ │ ├── NOWMixerTransport.lua │ │ │ │ │ ├── Remote_MidiActions.lua │ │ │ │ │ ├── Remote_Repeater.lua │ │ │ │ │ └── Remote_XYPad.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── Remote-SL-MKII.xml │ │ │ │ ├── Presets │ │ │ │ │ └── Remote-SL-MKII.automap │ │ │ │ ├── Remote-SL-MKII.bmp │ │ │ │ └── Remote-SL-MKII.lua │ │ │ ├── TouchOSC │ │ │ │ ├── Configurations │ │ │ │ │ ├── HandsetKeys.lua │ │ │ │ │ ├── MixerRecorderMatrix.lua │ │ │ │ │ ├── TouchOSC_KeyPad.lua │ │ │ │ │ └── TouchOSC_iPad.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── TouchOSC.xml │ │ │ │ │ ├── TouchOSC_KeyPad.xml │ │ │ │ │ ├── TouchOSC_Keys.xml │ │ │ │ │ └── TouchOSC_iPad.xml │ │ │ │ ├── Presets │ │ │ │ │ └── Duplex_iPad_performance.touchosc │ │ │ │ ├── TouchOSC.bmp │ │ │ │ └── TouchOSC.lua │ │ │ ├── ZoomR16 │ │ │ │ ├── Configurations │ │ │ │ │ └── Transport.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── ZoomR16.xml │ │ │ │ └── ZoomR16.lua │ │ │ ├── microKONTROL │ │ │ │ ├── Configurations │ │ │ │ │ ├── Effect.lua │ │ │ │ │ └── Mixer.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── microKONTROL.xml │ │ │ │ ├── Presets │ │ │ │ │ ├── microKONTROL.mkd │ │ │ │ │ └── microKONTROL.mks │ │ │ │ ├── microKONTROL.bmp │ │ │ │ └── microKONTROL.lua │ │ │ ├── nanoKONTROL │ │ │ │ ├── Configurations │ │ │ │ │ └── MixerTransport.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ └── nanoKONTROL.xml │ │ │ │ ├── nanoKONTROL.bmp │ │ │ │ └── nanoKONTROL.lua │ │ │ ├── nanoKONTROL2 │ │ │ │ ├── Configurations │ │ │ │ │ ├── MixerTransport.lua │ │ │ │ │ ├── NotesOnWheels.lua │ │ │ │ │ ├── RecorderTransport.lua │ │ │ │ │ └── StepSequencerTransport.lua │ │ │ │ ├── Controlmaps │ │ │ │ │ ├── nanoKONTROL2.xml │ │ │ │ │ └── nanoKONTROL2_Seq.xml │ │ │ │ ├── nanoKONTROL2.bmp │ │ │ │ └── nanoKONTROL2.lua │ │ │ └── unknown.bmp │ │ ├── Device.lua │ │ ├── Display.lua │ │ ├── Globals.lua │ │ ├── Message.lua │ │ ├── MessageStream.lua │ │ ├── MidiDevice.lua │ │ ├── Options.lua │ │ ├── OscDevice.lua │ │ ├── OscVoiceMgr.lua │ │ ├── Preferences.lua │ │ ├── RoamingDSP.lua │ │ ├── StateController.lua │ │ ├── UIButton.lua │ │ ├── UIButtonStrip.lua │ │ ├── UIComponent.lua │ │ ├── UIKey.lua │ │ ├── UILabel.lua │ │ ├── UILed.lua │ │ ├── UIPad.lua │ │ ├── UISlider.lua │ │ ├── UISpinner.lua │ │ ├── WidgetHooks.lua │ │ └── WidgetKeyboard.lua │ ├── README.md │ ├── changelog.md │ ├── config.ld │ ├── main.lua │ └── manifest.xml ├── com.renoise.EpicArpeggiator.xrnx │ ├── documentation │ │ └── Epic Arpeggiator V3.0.pdf │ ├── env_presets │ │ ├── -empty-.xml │ │ ├── EA25_0_3_8_5_3_points.xml │ │ ├── EA25_0_4_7_9_freeform.xml │ │ ├── EA25_1_3_7_regular.xml │ │ ├── EA30_0_4_7_9_tape_deck_fuckup.xml │ │ ├── EA30_BDF#GA.xml │ │ ├── EA30_DEGAB.xml │ │ ├── EA30_DFGAC.xml │ │ ├── EA30_DGEBC.xml │ │ ├── EA30_Ringmod_arp_bass.xml │ │ ├── EA30_delay_example.xml │ │ ├── EA30_pacman.xml │ │ ├── EA30_robocop.xml │ │ ├── EA30_semi_pacman.xml │ │ └── EA30_the_korgis_EGTLS.xml │ ├── envelope_processing.lua │ ├── globals.lua │ ├── gui_controls.lua │ ├── gui_envelope_arp.lua │ ├── gui_init.lua │ ├── gui_miscelaneous.lua │ ├── gui_pattern_arp.lua │ ├── gui_tool_options.lua │ ├── images │ │ ├── tab_env_profile.png │ │ ├── tab_envelope_arp.png │ │ ├── tab_envelope_arp_armed.png │ │ ├── tab_ins_volume.png │ │ ├── tab_note_matrix.png │ │ ├── tab_note_octave.png │ │ ├── tab_note_profile.png │ │ ├── tab_options.png │ │ ├── tab_pattern_arp.png │ │ ├── tab_pattern_arp_armed.png │ │ ├── tab_pool_area.png │ │ └── tab_presets.png │ ├── main.lua │ ├── manifest.xml │ ├── midi_control.lua │ ├── midi_device.lua │ ├── pattern_processing.lua │ ├── preset_manager.lua │ ├── presets │ │ ├── EA20_0_1_5_random.xml │ │ ├── EA20_0_2_5_random.xml │ │ ├── EA20_0_3_7_random.xml │ │ ├── EA20_5th avenue tripping.xml │ │ ├── EA20_Brazilian_0_2_5 (p-size_48).xml │ │ ├── EA20_Caribbean soul (p-size_48).xml │ │ └── _empty_.xml │ ├── scale.lua │ ├── scale_finder_ea.lua │ ├── tone_matrix.lua │ └── undo_management.lua ├── com.renoise.ExampleTool.xrnx │ ├── icon.png │ ├── main.lua │ └── manifest.xml ├── com.renoise.ExampleToolGui.xrnx │ ├── Bitmaps │ │ ├── MiniPiano.bmp │ │ ├── RenoiseLua.bmp │ │ └── RenoiseLua.png │ ├── main.lua │ └── manifest.xml ├── com.renoise.ExampleToolSlicedProcess.xrnx │ ├── main.lua │ ├── manifest.xml │ └── process_slicer.lua ├── com.renoise.FindAndReplace.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.GridPie.xrnx │ ├── main.lua │ ├── manifest.xml │ └── toolbox.lua ├── com.renoise.IRCclient.xrnx │ ├── globals.lua │ ├── gui.lua │ ├── main.lua │ └── manifest.xml ├── com.renoise.MidiConvert.xrnx │ ├── Midi.lua │ ├── ProcessSlicer.lua │ ├── README.md │ ├── export.lua │ ├── import.lua │ ├── main.lua │ ├── manifest.xml │ └── toolbox.lua ├── com.renoise.MidiPerformer.xrnx │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── MP_HelpDlg.lua │ │ ├── MP_Instrument.lua │ │ ├── MP_OptionsDlg.lua │ │ ├── MP_Prefs.lua │ │ ├── MP_UI.lua │ │ └── MidiPerformer.lua ├── com.renoise.Nibbles.xrnx │ ├── Bitmaps │ │ ├── cell_black.bmp │ │ ├── cell_grid.bmp │ │ ├── cell_renlogo.bmp │ │ ├── cell_snake.bmp │ │ ├── cell_wall1.bmp │ │ ├── cell_wall2.bmp │ │ ├── cell_wall3.bmp │ │ └── nibbles.bmp │ ├── ft_levels.lua │ ├── main.lua │ └── manifest.xml ├── com.renoise.Noodletrap.xrnx │ ├── README.md │ ├── classes │ │ ├── NTrap.lua │ │ ├── NTrapEvent.lua │ │ ├── NTrapPrefs.lua │ │ └── NTrapUI.lua │ ├── main.lua │ └── manifest.xml ├── com.renoise.NotesRandomizer.xrnx │ ├── gui.lua │ ├── main.lua │ ├── manifest.xml │ └── randomizer.lua ├── com.renoise.NotesStrum.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.PatternRotate.xrnx │ ├── main.lua │ ├── manifest.xml │ └── pattern_line_tools.lua ├── com.renoise.PhraseMate.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ ├── manual │ │ ├── collect_capture_all_replace.png │ │ ├── phrase_control.png │ │ ├── smart_write.png │ │ ├── tab_prefs.png │ │ ├── tab_presets.png │ │ ├── tab_props.png │ │ ├── tab_read.png │ │ ├── tab_write.png │ │ └── tab_zxx.png │ └── source │ │ ├── PhraseMate.lua │ │ ├── PhraseMateExportDialog.lua │ │ ├── PhraseMatePrefs.lua │ │ ├── PhraseMateSmartDialog.lua │ │ └── PhraseMateUI.lua ├── com.renoise.Rubberband.xrnx │ ├── Makefile │ ├── bin │ │ ├── osx │ │ │ ├── COPYING │ │ │ ├── README.txt │ │ │ ├── SOURCE.txt │ │ │ └── rubberband │ │ └── win32 │ │ │ ├── COPYING │ │ │ ├── README.txt │ │ │ ├── SOURCE.txt │ │ │ └── rubberband.exe │ ├── main.lua │ └── manifest.xml ├── com.renoise.ScaleMate.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── ScaleMate.lua │ │ ├── ScaleMate_Prefs.lua │ │ └── ScaleMate_UI.lua ├── com.renoise.SelectionShaper.xrnx │ ├── images │ │ ├── RM-saw.bmp │ │ ├── RM-sine.bmp │ │ ├── RM-square.bmp │ │ ├── RM-tri.bmp │ │ ├── arrow-left.bmp │ │ ├── arrow-right.bmp │ │ ├── center-amplify.bmp │ │ ├── center-fade.bmp │ │ ├── copy.bmp │ │ ├── fade-in.bmp │ │ ├── fade-out.bmp │ │ ├── random.png │ │ ├── random_small.bmp │ │ ├── resize_expand.png │ │ ├── resize_shrink.png │ │ ├── shift-minus1.bmp │ │ ├── shift-minus24.bmp │ │ ├── shift-plus1.bmp │ │ ├── shift-plus24.bmp │ │ ├── wave-noise-brown.bmp │ │ ├── wave-noise-pink.bmp │ │ ├── wave-noise-violet.bmp │ │ ├── wave-noise-white.bmp │ │ ├── wave-noise.bmp │ │ ├── wave-saw.bmp │ │ ├── wave-sine.bmp │ │ ├── wave-sine2.bmp │ │ ├── wave-square.bmp │ │ ├── wave-tri.bmp │ │ ├── whole-amplify.bmp │ │ └── whole-fade.bmp │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── gui_util.lua │ │ ├── ssk.lua │ │ ├── ssk_config.lua │ │ ├── ssk_dialog_create.lua │ │ ├── ssk_generator.lua │ │ ├── ssk_gui.lua │ │ ├── ssk_gui_keyzone.lua │ │ ├── ssk_gui_sampleprops.lua │ │ ├── ssk_modify.lua │ │ ├── ssk_prefs.lua │ │ └── ssk_selection.lua ├── com.renoise.SliceMate.xrnx │ ├── README.md │ ├── changelog.md │ ├── docs │ │ ├── slicemate-workflow-sxx-edited.gif │ │ ├── slicemate-workflow-sxx-root.gif │ │ └── splash_big.png │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── SliceMate.lua │ │ ├── SliceMate_Prefs.lua │ │ ├── SliceMate_UI.lua │ │ └── icons │ │ ├── detach.bmp │ │ └── warning.bmp ├── com.renoise.Sononymph.xrnx │ ├── README.md │ ├── docs │ │ ├── screenshot.png │ │ └── splash-large.png │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── App.lua │ │ ├── AppPrefs.lua │ │ ├── AppUI.lua │ │ ├── AppUIAbout.lua │ │ └── icons │ │ ├── detach.bmp │ │ ├── logo.png │ │ └── warning.bmp ├── com.renoise.Soundcloud.xrnx │ ├── bin │ │ ├── osx │ │ │ └── readme.txt │ │ └── win │ │ │ └── readme.txt │ ├── main.lua │ └── manifest.xml ├── com.renoise.TempoTap.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.ToggleDSPs.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.ToolUpdater.xrnx │ ├── images │ │ └── link-icon.bmp │ ├── main.lua │ └── manifest.xml ├── com.renoise.UpdateChecker.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.VoiceRunner.xrnx │ ├── README.md │ ├── changelog.md │ ├── main.lua │ ├── manifest.xml │ ├── manual │ │ ├── screenshot.png │ │ ├── voice-runner-demo.gif │ │ └── voice-runner-navigation.gif │ ├── source │ │ ├── VR.lua │ │ ├── VR_Prefs.lua │ │ ├── VR_Template.lua │ │ └── VR_UI.lua │ └── userdata │ │ └── templates │ │ ├── ColumnOctaves.lua │ │ ├── Default.lua │ │ ├── GMKit Small.lua │ │ ├── Octave C4.lua │ │ └── gmkit_full - Copy.lua_ ├── com.renoise.Xrni-Merger.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.ZeroCrossings.xrnx │ ├── main.lua │ └── manifest.xml ├── com.renoise.cLib.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ ├── source │ │ └── TestRunner.lua │ └── unit_tests │ │ ├── Test-cConvert.lua │ │ ├── Test-cFilesystem.lua │ │ ├── Test-cLib.lua │ │ ├── Test-cNumber.lua │ │ ├── Test-cObservable.lua │ │ ├── Test-cParseXML.lua │ │ ├── Test-cReflection.lua │ │ ├── Test-cTable.lua │ │ └── example_preferences.xml ├── com.renoise.vLib.xrnx │ ├── README.md │ ├── main.lua │ └── manifest.xml ├── com.renoise.vLibBoilerPlate.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── vLibBoilerPlate_Prefs.lua │ │ └── vLibBoilerPlate_UI.lua ├── com.renoise.xCleaner.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ └── source │ │ ├── xCleaner.lua │ │ └── xCleanerUI.lua ├── com.renoise.xLib.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ ├── source │ │ └── TestRunner.lua │ └── unit_tests │ │ ├── Test-xAudioDeviceAutomation.lua │ │ ├── Test-xBlockLoop.lua │ │ ├── Test-xCursorPos.lua │ │ ├── Test-xEffectColumn.lua │ │ ├── Test-xInstrument.lua │ │ ├── Test-xKeyZone.lua │ │ ├── Test-xLine.lua │ │ ├── Test-xLinePattern.lua │ │ ├── Test-xMidiInput.lua │ │ ├── Test-xMidiMessage.lua │ │ ├── Test-xNoteColumn.lua │ │ ├── Test-xOscDevice.lua │ │ ├── Test-xOscMessage.lua │ │ ├── Test-xOscPattern.lua │ │ ├── Test-xPatternSequencer.lua │ │ ├── Test-xPersistentSettings.lua │ │ ├── Test-xSample.lua │ │ ├── Test-xSampleBuffer.lua │ │ ├── Test-xScale.lua │ │ ├── Test-xSequencerSelection.lua │ │ ├── Test-xSongPos.lua │ │ ├── Test-xVoiceManager.lua │ │ ├── example_preferences.xml │ │ └── example_preferences_output.xml ├── com.renoise.xRules.xrnx │ ├── README.md │ ├── main.lua │ ├── manifest.xml │ ├── rulesets │ │ ├── examples │ │ │ ├── Aftertouch - CC.lua │ │ │ ├── Automapping.lua │ │ │ ├── BCR2000 Test.lua │ │ │ ├── Fixed Channel #.lua │ │ │ ├── Launchpad Feedback.lua │ │ │ ├── MIDIToTracks.lua │ │ │ ├── Mackie Protocol.lua │ │ │ ├── MonomeSerial.lua │ │ │ ├── OSC-Only Test.lua │ │ │ ├── Osc.js.lua │ │ │ ├── Routing test.lua │ │ │ ├── Set MIDI-out port.lua │ │ │ ├── Sysex, MMC.lua │ │ │ ├── TouchOSC.lua │ │ │ └── xStream iControls.lua │ │ └── test │ │ │ ├── A very long name for which I am not sure there is room enough.lua │ │ │ ├── Borked table.lua │ │ │ ├── Broken rule.lua │ │ │ ├── Empty.lua │ │ │ ├── Not a ruleset.lua │ │ │ ├── Syntax error.lua │ │ │ └── mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm.lua │ └── source │ │ ├── icons │ │ ├── key_small.bmp │ │ ├── logo-disabled.png │ │ ├── logo.png │ │ ├── midi_small.bmp │ │ ├── osc_small.bmp │ │ └── save.bmp │ │ ├── xRulesApp.lua │ │ ├── xRulesAppDialogCreate.lua │ │ ├── xRulesAppDialogExport.lua │ │ ├── xRulesAppDialogHelp.lua │ │ ├── xRulesAppDialogPrefs.lua │ │ ├── xRulesAppPrefs.lua │ │ ├── xRulesUI.lua │ │ ├── xRulesUIAction.lua │ │ ├── xRulesUICondition.lua │ │ └── xRulesUIEditor.lua ├── com.renoise.xStream.xrnx │ ├── README.md │ ├── changelog.md │ ├── docs │ │ ├── about_models.md │ │ ├── code_editor.md │ │ ├── coding_intro.md │ │ ├── events_userdata.md │ │ ├── example_models.md │ │ ├── favorites.md │ │ ├── file_formats.md │ │ ├── images │ │ │ ├── argument_editor.png │ │ │ ├── argument_list.png │ │ │ ├── argument_tabbed.png │ │ │ ├── arguments.png │ │ │ ├── callback_dialog.png │ │ │ ├── callback_dialog_data.png │ │ │ ├── callback_dialog_events.png │ │ │ ├── code_editor.png │ │ │ ├── euclidean.gif │ │ │ ├── favorites_grid.png │ │ │ ├── global_toolbar.png │ │ │ ├── model_toolbar.png │ │ │ ├── options_general.png │ │ │ ├── options_midi.png │ │ │ ├── options_output.png │ │ │ ├── options_streaming.png │ │ │ ├── preset_bank.png │ │ │ ├── preset_list.png │ │ │ ├── presets.png │ │ │ └── screenshot.png │ │ ├── introduction.md │ │ ├── known_limitations.md │ │ ├── lua_reference.md │ │ ├── main_toolbar.md │ │ ├── model_arguments.md │ │ ├── model_data.md │ │ ├── model_events.md │ │ ├── options.md │ │ ├── preset_bank.md │ │ ├── shortcuts_and_mappings.md │ │ └── user_interface.md │ ├── main.lua │ ├── manifest.xml │ ├── source │ │ ├── icons │ │ │ ├── add.bmp │ │ │ ├── bind_or_poll.bmp │ │ │ ├── delete.bmp │ │ │ ├── delete_small.bmp │ │ │ ├── lock.bmp │ │ │ ├── logo.png │ │ │ ├── maximize.bmp │ │ │ ├── minimize.bmp │ │ │ ├── move_down.bmp │ │ │ ├── move_up.bmp │ │ │ ├── open.bmp │ │ │ ├── pin.png │ │ │ ├── preset_bank.bmp │ │ │ ├── presets.bmp │ │ │ ├── refresh.bmp │ │ │ ├── rename.bmp │ │ │ ├── reveal_folder.bmp │ │ │ ├── save.bmp │ │ │ ├── save_as.bmp │ │ │ ├── stack_input_a.bmp │ │ │ ├── stack_input_b.bmp │ │ │ ├── stack_input_c.bmp │ │ │ ├── stack_input_d.bmp │ │ │ ├── stack_input_none.bmp │ │ │ ├── stack_input_patt - Copy.bmp │ │ │ ├── stack_input_patt.bmp │ │ │ ├── stack_output_none.bmp │ │ │ ├── stack_output_pass_on.bmp │ │ │ ├── stack_output_patt.bmp │ │ │ ├── transport_play.bmp │ │ │ ├── transport_record.bmp │ │ │ ├── transport_stop.bmp │ │ │ └── update.bmp │ │ ├── xStream.lua │ │ ├── xStreamArg.lua │ │ ├── xStreamArgs.lua │ │ ├── xStreamArgsTab.lua │ │ ├── xStreamFavorite.lua │ │ ├── xStreamFavorites.lua │ │ ├── xStreamModel.lua │ │ ├── xStreamModels.lua │ │ ├── xStreamPrefs.lua │ │ ├── xStreamPresets.lua │ │ ├── xStreamProcess.lua │ │ ├── xStreamUI.lua │ │ ├── xStreamUIArgsEditor.lua │ │ ├── xStreamUIArgsPanel.lua │ │ ├── xStreamUICallbackCreate.lua │ │ ├── xStreamUIFavorites.lua │ │ ├── xStreamUIGlobalToolbar.lua │ │ ├── xStreamUILuaEditor.lua │ │ ├── xStreamUIModelCreate.lua │ │ ├── xStreamUIModelToolbar.lua │ │ ├── xStreamUIOptions.lua │ │ ├── xStreamUIPresetPanel.lua │ │ └── xStreamUserData.lua │ └── userdata │ │ └── models │ │ ├── Args-Binding.lua │ │ ├── Args-Controls.lua │ │ ├── Args-Events.lua │ │ ├── Args-Polling.lua │ │ ├── Args-Tabbed.lua │ │ ├── Arpeggiator.lua │ │ ├── ChordMemory.lua │ │ ├── ColumnEraser.lua │ │ ├── ColumnMixer.lua │ │ ├── Convergence.lua │ │ ├── Demo-Automation.lua │ │ ├── Demo-FX-Commands.lua │ │ ├── Demo-Increment.lua │ │ ├── Demo-Notes-Scales.lua │ │ ├── Demo-Periodic output.lua │ │ ├── Demo-RandomNotes.lua │ │ ├── Demo-Read-Write.lua │ │ ├── Demo-Scheduling.lua │ │ ├── Demo-Transpose.lua │ │ ├── Demo-xLine Basics.lua │ │ ├── Euclidean Rhythms v1.2.lua │ │ ├── Euclidean Rhythms.lua │ │ ├── ExpDelay.lua │ │ ├── Granular.lua │ │ ├── LFO test.lua │ │ ├── Note-shuffle.lua │ │ ├── Progress │ │ └── Euclidean Rhythms 2.lua │ │ ├── Qxx Shuffle.lua │ │ ├── Random increase.lua │ │ ├── RandomScale.lua │ │ ├── Sequencer4.lua │ │ ├── Test │ │ └── Syntax Error.lua │ │ ├── VoiceMgr - Live.lua │ │ └── VoiceMgr - Pattern.lua ├── exclude.list └── howto-package.txt └── Xtra └── ToolScanner ├── README.txt ├── functions.php ├── run.php └── scanner.php /.gitignore: -------------------------------------------------------------------------------- 1 | # OS generated files 2 | .DS_Store 3 | .DS_Store? 4 | ._* 5 | .Spotlight-V100 6 | .Trashes 7 | ehthumbs.db 8 | Thumbs.db 9 | desktop.ini 10 | 11 | # Tool generated files 12 | preferences.xml 13 | Libraries/remdebug/Win32/controller_gui.ini 14 | 15 | # IDE generated files 16 | settings.json 17 | 18 | # Binary files 19 | Tools/com.renoise.Soundcloud.xrnx/bin/osx/Share on SoundCloud.app/ 20 | Tools/com.renoise.Soundcloud.xrnx/bin/win/Share on SoundCloud.exe 21 | Tools/com.renoise.xStream.xrnx/favorites.xml 22 | Tools/com.renoise.xStream.xrnx/userdata/favorites.xml 23 | 24 | Tools/com.renoise.AutoMate.xrnx/userdata/library/ 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 by the renoise authors 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 | ## Renoise Tools 2 | 3 | This site contains various complete scripting tools written by the Renoise team. The existing tools may help you to get more info about how your tools could be done. 4 | 5 | Please note: Most of the tools are outdated and no longer maintained, so this repository exists mainly as inspiration for new tools. 6 | 7 | Please have a look at the [Renoise Tools Page](http://tools.renoise.com/) for more current tools. 8 | 9 | ### Renoise Scripting Documentation 10 | 11 | If you want to create your own tools, please read the [Renoise Scripting Development Book](https://renoise.github.io/xrnx). 12 | 13 | This book is highly recommended for anyone who wants to get into all this Renoise scripting. Please read it first to get an overview of what's needed to develop tools for Renoise. It contains an introduction, some tutorials and the full API documentation. 14 | 15 | ### Need more help? 16 | 17 | For any questions regarding the Lua API or this repository, please have a look at the [Renoise Scripting Development Forum](https://forum.renoise.com/c/renoise-tool-development). 18 | -------------------------------------------------------------------------------- /Snippets/Files&Bits.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | Files&Bits.lua 3 | ============================================================================]]-- 4 | 5 | error("do not run this file. read and copy/paste from it only...") 6 | 7 | 8 | -- reading integer numbers or raw bytes from a file 9 | 10 | local function read_word(file) 11 | local bytes = file:read(2) 12 | if (not bytes or #bytes < 2) then 13 | return nil 14 | else 15 | return bit.bor(bytes:byte( 1), 16 | bit.lshift(bytes:byte(2), 8)) 17 | end 18 | end 19 | 20 | local function read_dword(file) 21 | local bytes = file:read(4) 22 | if (not bytes or #bytes < 4) then 23 | return nil 24 | else 25 | return bit.bor(bytes:byte(1), 26 | bit.lshift(bytes:byte(2), 8), 27 | bit.lshift(bytes:byte(3), 16), 28 | bit.lshift(bytes:byte(4), 24)) 29 | end 30 | end 31 | 32 | -- and so on (adapt as needed to mess with endianess!) ... 33 | 34 | local file = io.open("some_binary_file.bin", "rb") 35 | 36 | local bytes = file:read(512) 37 | 38 | if (not bytes or #bytes < 512) then 39 | print("unexpected end of file") 40 | else 41 | for i = 1, #bytes do 42 | print(bytes:byte(i)) 43 | end 44 | end 45 | 46 | print(read_word(file) or "unexpected end of file") 47 | print(read_dword(file) or "unexpected end of file") 48 | 49 | 50 | -- more bit manipulation? -> See "bit" in "Lua.Standard.API.lua" 51 | 52 | -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/changelog.md: -------------------------------------------------------------------------------- 1 | # AutoMate 2 | 3 | ## 0.57 4 | 5 | - Preset Library (persistent storage of device/parameter presets) 6 | - Basic Generators (WIP) 7 | - Use lower DSP/Envelope in Renoise to track the selected parameter 8 | - Don't enable Cut/Copy/Clear actions when no automation is available 9 | - Change default options (scope and selected tab) in preferences 10 | - Disable flick buttons when scope is 'Whole Song' 11 | - Status readout (redirected to status bar when GUI is not visible) 12 | - [Fix] vLib/vTable: row styling not reset on updates (stuck highlights) 13 | 14 | ## 0.55 15 | 16 | - Add Cut action 17 | - Add keybindings for all basic actions (Cut,Copy,Paste,Clear), in all scopes 18 | 19 | ## 0.5 20 | 21 | - Initial version 22 | 23 | 24 | -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/classes/AutoMatePreset.lua: -------------------------------------------------------------------------------- 1 | --[[=============================================================================================== 2 | -- AutoMate.lua 3 | ===============================================================================================]]-- 4 | 5 | --[[-- 6 | 7 | Base class for an AutoMate preset (`AutoMateClip`, `AutoMateGenerator`, etc.) 8 | . 9 | 10 | The class species just a single property, 'name', which is checked when loading presets. 11 | See also: `AutoMatePresetManager` 12 | 13 | --]] 14 | 15 | --================================================================================================= 16 | 17 | class 'AutoMatePreset' (cPersistence) 18 | 19 | AutoMatePreset.__PERSISTENCE = { 20 | "name", 21 | } 22 | 23 | --------------------------------------------------------------------------------------------------- 24 | 25 | function AutoMatePreset:__init() 26 | TRACE("AutoMatePreset:__init()") 27 | 28 | self.name = nil 29 | 30 | end 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/classes/AutoMateUserData.lua: -------------------------------------------------------------------------------- 1 | --[[=============================================================================================== 2 | AutoMateUserData 3 | ===============================================================================================]]-- 4 | --[[ 5 | 6 | Methods for handling the userdata folder 7 | 8 | # 9 | 10 | ]] 11 | 12 | --================================================================================================= 13 | 14 | class 'AutoMateUserData' 15 | 16 | 17 | -- location of main userdata folder 18 | -- (can overridden by custom folder defined in preferences) 19 | AutoMateUserData.DEFAULT_ROOT = renoise.tool().bundle_path .. "/userdata/" 20 | AutoMateUserData.USERDATA_ROOT = AutoMateUserData.DEFAULT_ROOT 21 | 22 | -- userdata subfolders 23 | AutoMateUserData.LIBRARY_FOLDER = "library/" 24 | AutoMateUserData.GENERATORS_FOLDER = "generators/" 25 | AutoMateUserData.TRANSFORMERS_FOLDER = "transformers/" 26 | 27 | --------------------------------------------------------------------------------------------------- 28 | -- [Static] Copy files from old to new folder 29 | -- @return boolean, true when files were copied 30 | -- @return string, error message when failed 31 | 32 | function AutoMateUserData.migrate_to_folder(old_path,new_path) 33 | TRACE("AutoMateUserData.migrate_to_folder(old_path,new_path)",old_path,new_path) 34 | 35 | local success,err = cFilesystem.copy_folder(old_path,new_path) 36 | if not success then 37 | return false,err 38 | end 39 | 40 | return true 41 | 42 | end 43 | -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/docs/ClassDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/docs/ClassDiagram.png -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Active.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Empty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Empty.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/AutomationList_None.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/AutomationList_None.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Unknown - Copy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Unknown - Copy.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Unknown.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/AutomationList_Unknown.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/add.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/add.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/copy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/copy.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/delete.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/delete.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/refresh.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/refresh.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/rename.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/rename.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/images/reveal_folder.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.AutoMate.xrnx/images/reveal_folder.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | AutoMate 4 | com.renoise.AutoMate 5 | 0.55 6 | 5 7 | danoise (bjorn@renoise.com) 8 | Automation 9 | AutoMate can copy/move automation between devices and parameters. Launch it from the Tools menu, or specify your own keyboard shortcuts (search for "AutoMate" in keyboard prefs). 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.AutoMate.xrnx/userdata/generators/Linear Ramp.lua: -------------------------------------------------------------------------------- 1 | --[[=========================================================================== 2 | AutoMateGenerator (http://www.example.com) 3 | ===========================================================================]]-- 4 | 5 | return { 6 | ["__type"] = "AutoMateGenerator", 7 | ["__version"] = 0, 8 | ["name"] = "Linear Curve", 9 | ["arguments"] = { 10 | { 11 | ["__type"] = "AutoMateSandboxArgument", 12 | ["name"] = "density", 13 | ["value"] = 1, 14 | ["value_min"] = -512, 15 | ["value_max"] = 256, 16 | ["value_quantum"] = 0, 17 | ["display_as"] = "valuebox", 18 | }, 19 | { 20 | ["__type"] = "AutoMateSandboxArgument", 21 | ["name"] = "from", 22 | ["value"] = 0, 23 | ["value_min"] = 0, 24 | ["value_max"] = 1, 25 | ["value_quantum"] = 0, 26 | ["display_as"] = "minislider", 27 | }, 28 | { 29 | ["__type"] = "AutoMateSandboxArgument", 30 | ["name"] = "to", 31 | ["value"] = 1, 32 | ["value_min"] = 0, 33 | ["value_max"] = 1, 34 | ["value_quantum"] = 0, 35 | ["display_as"] = "minislider", 36 | } 37 | }, 38 | ["callback"] = [[ 39 | --------------------------------------------------------- 40 | -- determine value 41 | --------------------------------------------------------- 42 | local val = (1/number_of_points) * (index-1) 43 | point.value = cLib.scale_value(val,0,1,args.from,args.to) 44 | ]] 45 | 46 | } -------------------------------------------------------------------------------- /Tools/com.renoise.CreateTool.xrnx/images/info.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.CreateTool.xrnx/images/info.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.CreateTool.xrnx/images/link-icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.CreateTool.xrnx/images/link-icon.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.CreateTool.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.CreateTool 5 | 11.02 6 | Bantai 7 | Create Tool 8 | Development 9 | A wizard to help you setup the basic structure for a new Tool. There is also an Export to XRNX file feature. 10 | 11 | Look in the File menu of the Scripting Editor. 12 | http://tools.renoise.com/tools/create-tool 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.CreateTool.xrnx/zip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.CreateTool.xrnx/zip.exe -------------------------------------------------------------------------------- /Tools/com.renoise.CustomPatternNavigation.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.CustomPatternNavigation 5 | 2.32 6 | Vincent Voois [ http://tinyurl.com/vvrns ] & Angel Draganov 7 | Custom Pattern Navigation 8 | Pattern Editor 9 | Adds keybindings to jump an arbitrary amount of lines in the Pattern Editor. When activated, two new key binding entries will show up in 'Pattern Editor', 'Navigation': 10 | 'Custom Jump Lines Up' and Custom Jump Lines Down. Those keybindings can then be configured with in the 'Tools' menu. 11 | http://tools.renoise.com 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.CustomWave.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.CustomWave 5 | 0.92 6 | Fabio Napodano | It-Alien (it-alien@renoise.com) 7 | Custom Wave Synth 8 | Sample Editor 9 | A sample generator which allows you to create complex new short, looped samples, using up 10 | to 6 oscillators and oscillator modulation. 11 | 12 | A note range can be defined in order to create multisampled instruments. 13 | 14 | Creates a menu entry 'Generate Custom Wave' in the sample editor's context menu (right click on an empty sample wave form). 15 | http://tools.renoise.com 16 | 17 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Applications/Automateable.md: -------------------------------------------------------------------------------- 1 | # Duplex.Applications.Automateable 2 | 3 | < Back to [Applications](../Applications.md) 4 | 5 | ## About 6 | 7 | Automateable is a class that other applications can choose to extend. This makes it easy to create an application with built-in automation-recording. 8 | 9 | 10 | You can specify how automation is recorded via the `record_method` option. 11 | _Please be aware that Automateable only records automation while edit mode is enabled in Renoise_. 12 | 13 | These are the available modes: 14 | 15 | **Punch-in** : clears automation ahead of the current position 16 | ![automation_mode_interleave](../Images/automation_mode_punch_in.gif) 17 | 18 | **Interleave** : inserts automation without clearing values 19 | ![automation_mode_interleave](../Images/automation_mode_interleave.gif) 20 | 21 | 22 | ## High-resolution mode 23 | 24 | From the Duplex tool menu you can choose between low-res (1 value per line) or high-resolution automation. 25 | Automateable will use whichever option you have selected. 26 | 27 | ## Default options 28 | 29 | > Can be overridden in [configurations](../Configurations.md) 30 | 31 | | Name | Description | 32 | | ------------- |---------------| 33 | |`record_method`|Determine if/how to record automation| 34 | 35 | 36 | ## Changelog 37 | 38 | 1.01 39 | - First release -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Applications/Metronome.md: -------------------------------------------------------------------------------- 1 | # Duplex.Applications.Metronome 2 | 3 | < Back to [Applications](../Applications.md) 4 | 5 | ## About 6 | 7 | Metronome is a sample application, meant to demonstrate how to write an application with Duplex. 8 | It demonstrates how to listen for events within Renoise and produce a proper response on the controller (bi-directional communication). 9 | 10 | To read the whole tutorial, visit [this topic](http://forum.renoise.com/index.php?/topic/30577-duplex-how-to-create-a-new-duplex-application/) on the Renoise forum. 11 | 12 | ## Available mappings 13 | 14 | | Name | Description | 15 | | -----------|---------------| 16 | | `toggle` | Metronome: toggle on/off | 17 | 18 | ## Available options 19 | 20 | *This application has no options.* 21 | 22 | ## Changelog 23 | 24 | 1.01 25 | - Tool-dev: use cLib/xLib libraries 26 | 27 | 0.xx 28 | - Initial release 29 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Config_launchpad_stepsequencer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Config_launchpad_stepsequencer.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_browser.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_device_config_midi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_device_config_midi.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_device_config_osc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_device_config_osc.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_menu.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_options.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_signal_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Duplex_signal_flow.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/GridPie_on_launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/GridPie_on_launchpad.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_devices.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_sample_mappings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_sample_mappings.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_scale_harmonic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_scale_harmonic.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_scale_isomorphic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Keyboard_scale_isomorphic.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Recorder_on_launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Recorder_on_launchpad.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/Repeater_on_remote_sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/Repeater_on_remote_sl.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_communication.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_communication.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_devices.png -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_roaming.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/XYPad_roaming.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/automation_mode_interleave.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/automation_mode_interleave.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/automation_mode_punch_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/automation_mode_punch_in.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Images/mlrx_on_monome.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Docs/Images/mlrx_on_monome.gif -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Docs/Resources.md: -------------------------------------------------------------------------------- 1 | # Links and Resources 2 | 3 | ## Bug Reports and Support 4 | 5 | Duplex has a [dedicated topic on the Renoise forum](http://forum.renoise.com/index.php?/topic/27886-duplex-beta-versions/), where you can get support. 6 | 7 | ## List of Supported Controllers 8 | 9 | We [maintain a list of supported controllers](https://docs.google.com/spreadsheet/ccc?key=0AkXQ8SxsnmZKdHZwTVVkUnh0WUxfOEtYblhMbWp6R3c&hl=en#gid=0) as a Google spreadsheet. 10 | If your controller is not listed there, please create a new topic on the [Renoise forum](http://forum.renoise.com/). 11 | 12 | ## Source Code and Documentation 13 | The source code for Duplex is located on our [official source code repository](https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.Duplex.xrnx) (github). 14 | The [luadoc reference](https://renoise.github.io/luadocs/duplex/index.html) offers a compact overview of the framework and its classes. 15 | 16 | ## HOW-TO Guides 17 | [How To Create A New Duplex Application](http://forum.renoise.com/index.php/topic/30577-how-to-create-a-new-duplex-application/) (Renoise Forum) 18 | [How To Start Editing Duplex Files](http://forum.renoise.com/index.php/topic/28284-how-to-start-editing-duplex-files/) (Renoise Forum) 19 | 20 | 21 | # 22 | 23 | > < Previous - [Frequently Asked Questions](FAQ.md) -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/APC20/APC20.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/APC20/APC20.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/APC40/APC40.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/APC40/APC40.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Akai-MPK49/Akai-MPK49.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Akai-MPK49/Akai-MPK49.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Akai-MPK49/Akai-MPK49.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Akai-MPK49 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/AkaiLPD8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/AkaiLPD8.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/AkaiLPD8.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Configurations/Effect.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | -- configuration properties 7 | name = "Effects", 8 | pinned = true, 9 | -- device properties 10 | device = { 11 | display_name = "AkaiLPD8", 12 | device_port_in = "MIDIIN2 (AkaiLPD8)", 13 | device_port_out = "MIDIOUT2 (AkaiLPD8)", 14 | control_map = "Controllers/AkaiLPD8/Controlmaps/AkaiLPD8.xml", 15 | thumbnail = "Controllers/AkaiLPD8/AkaiLPD8.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | applications = { 19 | Effect = { 20 | mappings = { 21 | parameters = { 22 | group_name= "Knobs", 23 | }, 24 | device_prev = { 25 | group_name = "Pads", 26 | index = 1 27 | }, 28 | device_next = { 29 | group_name = "Pads", 30 | index = 2 31 | }, 32 | preset_prev = { 33 | group_name = "Pads", 34 | index = 3 35 | }, 36 | preset_next = { 37 | group_name = "Pads", 38 | index = 4 39 | }, 40 | page = { 41 | group_name = "Pads", 42 | index = 5 43 | }, 44 | } 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Configurations/GridPie.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | -- configuration properties 7 | name = "GridPie", 8 | pinned = true, 9 | -- device properties 10 | device = { 11 | display_name = "AkaiLPD8", 12 | device_port_in = "MIDIIN2 (AkaiLPD8)", 13 | device_port_out = "MIDIOUT2 (AkaiLPD8)", 14 | control_map = "Controllers/AkaiLPD8/Controlmaps/AkaiLPD8_GridPie.xml", 15 | thumbnail = "Controllers/AkaiLPD8/AkaiLPD8.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | applications = { 19 | GridPie = { 20 | mappings = { 21 | grid = { 22 | group_name = "Pads", 23 | }, 24 | v_slider = { 25 | group_name = "Knobs", 26 | index = 1 27 | }, 28 | h_slider = { 29 | group_name = "Knobs", 30 | index = 2 31 | }, 32 | }, 33 | options = { 34 | -- keep at minimum step size 35 | v_step = 2, 36 | h_step = 2, 37 | } 38 | }, 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Configurations/Keypads.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | -- configuration properties 7 | name = "Keyboard", 8 | pinned = true, 9 | -- device properties 10 | device = { 11 | display_name = "AkaiLPD8", 12 | device_port_in = "MIDIIN2 (AkaiLPD8)", 13 | device_port_out = "MIDIOUT2 (AkaiLPD8)", 14 | control_map = "Controllers/AkaiLPD8/Controlmaps/AkaiLPD8_Keypad.xml", 15 | thumbnail = "Controllers/AkaiLPD8/AkaiLPD8.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | applications = { 19 | Keyboard = { 20 | mappings = { 21 | key_grid = { 22 | group_name = "Pads", 23 | }, 24 | }, 25 | options = { 26 | }, 27 | hidden_options = { -- display minimal set of options 28 | "channel_pressure","pitch_bend","release_type","button_width","button_height" 29 | }, 30 | }, 31 | 32 | } 33 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Configurations/Mixer.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | -- configuration properties 7 | name = "Mixer", 8 | pinned = true, 9 | -- device properties 10 | device = { 11 | display_name = "AkaiLPD8", 12 | device_port_in = "MIDIIN2 (AkaiLPD8)", 13 | device_port_out = "MIDIOUT2 (AkaiLPD8)", 14 | control_map = "Controllers/AkaiLPD8/Controlmaps/AkaiLPD8.xml", 15 | thumbnail = "Controllers/AkaiLPD8/AkaiLPD8.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | applications = { 19 | Mixer = { 20 | mappings = { 21 | mute = { 22 | group_name = "Pads", 23 | }, 24 | levels = { 25 | group_name = "Knobs", 26 | }, 27 | }, 28 | options = { 29 | pre_post = 2, 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Configurations/XYPad.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.AkaiLPD8 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | -- configuration properties 7 | name = "XYPad", 8 | pinned = true, 9 | -- device properties 10 | device = { 11 | display_name = "AkaiLPD8", 12 | device_port_in = "MIDIIN2 (AkaiLPD8)", 13 | device_port_out = "MIDIOUT2 (AkaiLPD8)", 14 | control_map = "Controllers/AkaiLPD8/Controlmaps/AkaiLPD8_XYPad.xml", 15 | thumbnail = "Controllers/AkaiLPD8/AkaiLPD8.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | applications = { 19 | XYPad = { 20 | mappings = { 21 | x_slider = { 22 | group_name = "Pads_X", 23 | index = 1, 24 | orientation = ORIENTATION.HORIZONTAL 25 | }, 26 | y_slider = { 27 | group_name = "Pads_Y", 28 | index = 1, 29 | orientation = ORIENTATION.HORIZONTAL 30 | } 31 | }, 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/AkaiLPD8/Presets/AkaiLPD8.preset: -------------------------------------------------------------------------------- 1 | 240 71 127 117 97 0 58 1 0 36 0 114 0 37 1 115 0 38 2 116 0 39 3 117 0 40 4 110 0 41 5 111 0 42 6 112 0 43 7 113 0 21 0 127 22 0 127 23 0 127 24 0 127 25 0 127 26 0 127 27 0 127 28 0 127 247 -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCD-3000/Configurations/BDC-3000-Empty.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.APC40 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Empty", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "BCD-3000", 15 | device_port_in = "", 16 | device_port_out = "", 17 | control_map = "Controllers/BCD-3000/Controlmaps/BCD-3000.xml", 18 | thumbnail = "", 19 | protocol = DEVICE_PROTOCOL.MIDI, 20 | }, 21 | 22 | applications = { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/BCF-2000.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/BCF-2000.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/BCF-2000.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.BCF2000 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | -- default configuration of the BCF-2000 6 | 7 | --============================================================================== 8 | 9 | class "BCF2000" (MidiDevice) 10 | 11 | function BCF2000:__init(display_name, message_stream, port_in, port_out) 12 | TRACE("BCF2000:__init", display_name, message_stream, port_in, port_out) 13 | 14 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 15 | 16 | -- the BCF can not handle looped back messages correctly, so we disable 17 | -- sending back messages we got from the BCF, in order to break feedback loops... 18 | -- self.loopback_received_messages = false 19 | 20 | 21 | end 22 | 23 | 24 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/Presets/BCF-2000-NRPN.syx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/Presets/BCF-2000-NRPN.syx -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCR-2000/BCR-2000.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCR-2000/BCR-2000.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCR-2000/BCR-2000.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.BCR2000 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | -- default configuration of the BCR-2000 6 | 7 | --============================================================================== 8 | 9 | class "BCR2000" (MidiDevice) 10 | 11 | function BCR2000:__init(display_name, message_stream, port_in, port_out) 12 | TRACE("BCR2000:__init", display_name, message_stream, port_in, port_out) 13 | 14 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 15 | 16 | -- the BCR can not handle looped back messages correctly, so we disable 17 | -- sending back messages we got from the BCR, in order to break feedback loops... 18 | --self.loopback_received_messages = false 19 | 20 | end 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCR-2000/Presets/BCR-2000-NRPN.syx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCR-2000/Presets/BCR-2000-NRPN.syx -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/Configurations/RControl_TrackSelector.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Custombuilt 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | -- setup "TrackSelector" for the imaginary "R-Control" device 6 | 7 | duplex_configurations:insert { 8 | 9 | -- configuration properties 10 | name = "TrackSelector", 11 | pinned = true, 12 | 13 | -- device properties 14 | device = { 15 | display_name = "R-control", 16 | device_port_in = "", 17 | device_port_out = "", 18 | control_map = "Controllers/Custombuilt/Controlmaps/R-control.xml", 19 | thumbnail = "Controllers/Custombuilt/R-control.bmp", 20 | protocol = DEVICE_PROTOCOL.MIDI 21 | }, 22 | 23 | applications = { 24 | TrackSelector = { 25 | mappings = { 26 | select_first = { 27 | group_name = "Switches", 28 | index = 5, 29 | }, 30 | select_sends = { 31 | group_name = "Switches", 32 | index = 7, 33 | }, 34 | select_track = { 35 | group_name = "Master", 36 | }, 37 | }, 38 | }, 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/Custombuilt.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Custombuilt 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Various custom 'devices' for demonstration purposes 8 | 9 | --]] 10 | 11 | --============================================================================== 12 | 13 | class "Custombuilt" (MidiDevice) 14 | 15 | function Custombuilt:__init(...) 16 | TRACE("Custombuilt:__init", ...) 17 | 18 | MidiDevice.__init(self, ...) 19 | 20 | -- this device has a color-space with 16 degrees of RGB 21 | self.colorspace = {16, 16, 16} 22 | 23 | end 24 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/NOW_Controller.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/NOW_Controller.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/R-control.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Custombuilt/R-control.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Configurations/Effect.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.KONTROL49 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Effect", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | display_name = "KONTROL49", 14 | device_port_in = "MIDIIN2 (KONTROL49)", 15 | device_port_out = "MIDIOUT2 (KONTROL49)", 16 | control_map = "Controllers/KONTROL49/Controlmaps/KONTROL49.xml", 17 | thumbnail = "Controllers/KONTROL49/KONTROL49.bmp", 18 | protocol = DEVICE_PROTOCOL.MIDI 19 | }, 20 | 21 | applications = { 22 | Effect = { 23 | mappings = { 24 | parameters = { 25 | group_name= "Encoders" 26 | }, 27 | device = { 28 | group_name = "Pads B" 29 | }, 30 | param_prev = { 31 | group_name = "Switches", 32 | index = 1, 33 | }, 34 | param_next = { 35 | group_name = "Switches", 36 | index = 2, 37 | }, 38 | 39 | } 40 | } 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Configurations/Mixer.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.KONTROL49 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Mixer", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | display_name = "KONTROL49", 14 | device_port_in = "MIDIIN2 (KONTROL49)", 15 | device_port_out = "MIDIOUT2 (KONTROL49)", 16 | control_map = "Controllers/KONTROL49/Controlmaps/KONTROL49.xml", 17 | thumbnail = "Controllers/KONTROL49/KONTROL49.bmp", 18 | protocol = DEVICE_PROTOCOL.MIDI 19 | }, 20 | 21 | applications = { 22 | Mixer = { 23 | mappings = { 24 | mute = { 25 | group_name = "Pads A" 26 | }, 27 | solo = { 28 | group_name = "Pads B" 29 | }, 30 | panning = { 31 | group_name = "Encoders" 32 | }, 33 | levels = { 34 | group_name = "Sliders" 35 | }, 36 | page = { 37 | group_name = "Switches" 38 | } 39 | }, 40 | options = { 41 | pre_post = 2, 42 | follow_track = 1, -- "Follow track enabled" 43 | } 44 | } 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/KONTROL49.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/KONTROL49.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/KONTROL49.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.KONTROL49 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Presets/KONTROL49.k4d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Presets/KONTROL49.k4d -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Presets/KONTROL49.k4s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/KONTROL49/Presets/KONTROL49.k4s -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Launch-Control-XL/Launch-Control-XL.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Launch-Control-XL/Launch-Control-XL.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Launchpad/Configurations/Launchpad_MuteGrid.lua: -------------------------------------------------------------------------------- 1 | duplex_configurations:insert { 2 | -- configuration properties 3 | name = "MuteGrid + Navigator + Matrix", 4 | pinned = true, 5 | -- device properties 6 | device = { 7 | class_name = "Launchpad", 8 | display_name = "Launchpad", 9 | device_port_in = "Launchpad", 10 | device_port_out = "Launchpad", 11 | control_map = "Controllers/Launchpad/Controlmaps/Launchpad_Mixer.xml", 12 | thumbnail = "Controllers/Launchpad/Launchpad.bmp", 13 | protocol = DEVICE_PROTOCOL.MIDI, 14 | }, 15 | applications = { 16 | Mixer = { 17 | mappings = { 18 | mute = { 19 | group_name = "Grid", -- this is where the grid is assigned 20 | }, 21 | }, 22 | options = { 23 | follow_track = 2, -- track follow is disabled 24 | }, 25 | palette = { 26 | normal_mute_on = { 27 | color={0xff,0x00,0x00} 28 | }, 29 | } 30 | }, 31 | Navigator = { 32 | mappings = { 33 | blockpos = { 34 | group_name = "Controls", 35 | orientation = ORIENTATION.HORIZONTAL, 36 | } 37 | } 38 | }, 39 | Matrix = { 40 | mappings = { 41 | triggers = { 42 | group_name = "Triggers", 43 | --orientation = ORIENTATION.HORIZONTAL, 44 | }, 45 | }, 46 | options = { 47 | sequence_mode = 2, 48 | }, 49 | }, 50 | } 51 | } -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Launchpad/Launchpad.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Launchpad/Launchpad.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/LaunchpadMiniMK3/LaunchpadMiniMK3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/LaunchpadMiniMK3/LaunchpadMiniMK3.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Fighter-Twister/Configurations/MF_Twister_Effects.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MIDI-Fighter-Twister 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Effects", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | --class_name = "", 14 | device_port_in = "", 15 | device_port_out = "", 16 | thumbnail = "Controllers/MIDI-Fighter-Twister/Thumbnail.bmp", 17 | display_name = "MIDI-Fighter Twister", 18 | control_map = "Controllers/MIDI-Fighter-Twister/Controlmaps/MF_Twister.xml", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | Effect = { 24 | mappings = { 25 | parameters = { 26 | group_name = "Encoder*", 27 | index = 1, 28 | }, 29 | 30 | }, 31 | }, 32 | 33 | } 34 | } 35 | 36 | 37 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Fighter-Twister/Thumbnail.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Fighter-Twister/Thumbnail.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Keyboard/Controlmaps/MIDI-Key_Keyboard.xml: -------------------------------------------------------------------------------- 1 | 2 | Basic MIDI-Keyboard layout 3 | Renoise Team 4 | This is a generic four-octave MIDI-Keyboard with pitch-bend, mod-wheel and channel pressure support 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Keyboard/MIDI-Keyboard.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Keyboard/MIDI-Keyboard.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MIDI-Keyboard/MIDI-Keyboard.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MIDI-Keyboard 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | --]] 10 | 11 | --============================================================================== 12 | 13 | class "MidiKeyboard" (MidiDevice) 14 | 15 | function MidiKeyboard:__init(display_name, message_stream, port_in, port_out) 16 | TRACE("MidiKeyboard:__init", display_name, message_stream, port_in, port_out) 17 | 18 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 19 | 20 | -- disable sending back messages 21 | self.loopback_received_messages = false 22 | 23 | end 24 | 25 | 26 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD24/Configurations/MatrixMixerEffects.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MPD24 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Mixer + Matrix + Effects", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "MPD24", 15 | device_port_in = "Akai MPD24 (Port 1)", 16 | device_port_out = "Akai MPD24 (Port 1)", 17 | control_map = "Controllers/MPD24/Controlmaps/MPD24.xml", 18 | thumbnail = "Controllers/MPD24/MPD24.bmp", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | Mixer = { 24 | mappings = { 25 | levels = { 26 | group_name = "Faders", 27 | } 28 | } 29 | }, 30 | Matrix = { 31 | mappings = { 32 | matrix = { 33 | group_name = "Pads", 34 | } 35 | } 36 | }, 37 | Effect = { 38 | mappings = { 39 | parameters = { 40 | group_name= "Knobs", 41 | } 42 | } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD24/MPD24.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD24/MPD24.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD24/MPD24.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MPD24 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD26/MPD26.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD26/MPD26.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD26/MPD26.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MPD26 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD32/MPD32.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD32/MPD32.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/MPD32/MPD32.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.MPD32 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Mackie-Control/Mackie-Control.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Mackie-Control/Mackie-Control.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Mackie-Control/Mackie-Control.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Mackie-Control 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: Mackie-Control > MidiDevice > Device 8 | 9 | A generic class for devices that support the Mackie-control protocol 10 | 11 | --]] 12 | 13 | --============================================================================== 14 | 15 | class "MackieControl" (MidiDevice) 16 | 17 | function MackieControl:__init(display_name, message_stream, port_in, port_out) 18 | TRACE("MackieControl:__init", display_name, message_stream, port_in, port_out) 19 | 20 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 21 | 22 | self.allow_zero_velocity_note_on = true 23 | 24 | 25 | end 26 | 27 | 28 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Configurations/m128_Keyboard.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Monome 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Keyboard", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = "Monome", 14 | display_name = "Monome 128", 15 | device_prefix = "/duplex", 16 | device_address = "127.0.0.1", 17 | device_port_in = "8002", 18 | device_port_out = "8082", 19 | control_map = "Controllers/Monome/Controlmaps/Monome128_Keyboard.xml", 20 | thumbnail = "Controllers/Monome/Monome.bmp", 21 | protocol = DEVICE_PROTOCOL.OSC, 22 | }, 23 | applications = { 24 | KeyBoard = { 25 | application = "Keyboard", 26 | mappings = { 27 | key_grid = { 28 | group_name = "Grid" 29 | } 30 | }, 31 | palette = { 32 | 33 | } 34 | }, 35 | KeyPads = { 36 | application = "Keyboard", 37 | mappings = { 38 | key_grid = { 39 | group_name = "KeyPads" 40 | } 41 | }, 42 | options = { 43 | button_width = 2, 44 | button_height = 2, 45 | } 46 | }, 47 | 48 | } 49 | } 50 | 51 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Configurations/m128_KeyboardSingle.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Configurations/m128_KeyboardSingle.lua -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Configurations/m64_Matrix.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Monome 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Matrix", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = "Monome", 14 | display_name = "Monome 64", 15 | device_prefix = "/duplex", 16 | device_address = "127.0.0.1", 17 | device_port_in = "8002", 18 | device_port_out = "8082", 19 | control_map = "Controllers/Monome/Controlmaps/Monome64_Matrix.xml", 20 | thumbnail = "Controllers/Monome/Monome.bmp", 21 | protocol = DEVICE_PROTOCOL.OSC, 22 | 23 | }, 24 | applications = { 25 | Matrix = { 26 | mappings = { 27 | matrix = { 28 | group_name = "Grid1", 29 | }, 30 | triggers = { 31 | group_name = "TrigControls", 32 | }, 33 | prev_seq_page = { 34 | group_name = "Controls", 35 | index = 1, 36 | }, 37 | next_seq_page = { 38 | group_name = "Controls", 39 | index = 2, 40 | }, 41 | track = { 42 | group_name = "Controls", 43 | index = 3, 44 | } 45 | } 46 | } 47 | } 48 | } 49 | 50 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Monome.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Monome/Monome.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Configurations/Nocturn_Mixer.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Mixer", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "Nocturn Automap", 15 | device_port_in = "Automap MIDI", 16 | device_port_out = "Automap MIDI", 17 | control_map = "Controllers/Nocturn/Controlmaps/Nocturn.xml", 18 | thumbnail = "Controllers/Nocturn/Nocturn.bmp", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | Mixer = { 24 | mappings = { 25 | levels = { 26 | group_name = "Encoders", 27 | }, 28 | mute = { 29 | group_name = "Pots", 30 | }, 31 | master = { 32 | group_name = "XFader", 33 | }, 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Configurations/Nocturn_Navigator.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | -- setup Navigator on the buttons, leave sliders/crossfader unassigned 6 | 7 | duplex_configurations:insert { 8 | 9 | -- configuration properties 10 | name = "Navigator", 11 | pinned = true, 12 | 13 | -- device properties 14 | device = { 15 | class_name = nil, 16 | display_name = "Nocturn Automap", 17 | device_port_in = "Automap MIDI", 18 | device_port_out = "Automap MIDI", 19 | control_map = "Controllers/Nocturn/Controlmaps/Nocturn.xml", 20 | thumbnail = "Controllers/Nocturn/Nocturn.bmp", 21 | protocol = DEVICE_PROTOCOL.MIDI 22 | }, 23 | 24 | applications = { 25 | Navigator = { 26 | mappings = { 27 | blockpos = { 28 | group_name= "Pots", 29 | orientation = ORIENTATION.HORIZONTAL, 30 | }, 31 | }, 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Configurations/Nocturn_Recorder.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Recorder", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "Nocturn Automap", 15 | device_port_in = "Automap MIDI", 16 | device_port_out = "Automap MIDI", 17 | control_map = "Controllers/Nocturn/Controlmaps/Nocturn.xml", 18 | thumbnail = "Controllers/Nocturn/Nocturn.bmp", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | Recorder = { 24 | mappings = { 25 | recorders = { 26 | group_name = "Pots", 27 | }, 28 | sliders = { 29 | group_name = "Encoders", 30 | }, 31 | }, 32 | options = { 33 | --writeahead = 1, 34 | --loop_mode = 2, 35 | --beat_sync = 1, 36 | --trigger_mode = 1, 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Configurations/Nocturn_TrackSelector.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "TrackSelector", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "Nocturn Automap", 15 | device_port_in = "Automap MIDI", 16 | device_port_out = "Automap MIDI", 17 | control_map = "Controllers/Nocturn/Controlmaps/Nocturn.xml", 18 | thumbnail = "Controllers/Nocturn/Nocturn.bmp", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | TrackSelector = { 24 | mappings = { 25 | select_track = { 26 | group_name= "Pots", 27 | index = 1, 28 | }, 29 | }, 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Configurations/Nocturn_XYPad.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "XYPad", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "Nocturn Automap", 15 | device_port_in = "Automap MIDI", 16 | device_port_out = "Automap MIDI", 17 | control_map = "Controllers/Nocturn/Controlmaps/Nocturn.xml", 18 | thumbnail = "Controllers/Nocturn/Nocturn.bmp", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | XYPad = { 24 | mappings = { 25 | x_slider = { 26 | group_name = "Encoders", 27 | index = 1, 28 | }, 29 | y_slider = { 30 | group_name = "Encoders", 31 | index = 2, 32 | }, 33 | }, 34 | options = { 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Nocturn.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Nocturn.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Nocturn/Nocturn.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Nocturn 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Ohm64/Ohm64.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Ohm64/Ohm64.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Ohm64/Ohm64.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Ohm64 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: Ohm64 > MidiDevice > Device 8 | 9 | A device-specific class 10 | 11 | --]] 12 | 13 | 14 | --============================================================================== 15 | 16 | class "Ohm64" (MidiDevice) 17 | 18 | function Ohm64:__init(display_name, message_stream, port_in, port_out) 19 | TRACE("Ohm64:__init", display_name, message_stream, port_in, port_out) 20 | 21 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 22 | 23 | -- setup a monochrome colorspace for the OHM 24 | self.colorspace = {1} 25 | end 26 | 27 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/OhmRGB/OhmRGB.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/OhmRGB/OhmRGB.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Oxygen88/Configurations/O88-Cursor.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Controllers.Oxygen88 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "TestPad", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = nil, 14 | display_name = "Oxygen88", 15 | device_port_in = "none", 16 | device_port_out = "none", 17 | control_map = "Controllers/Oxygen88/Controlmaps/Oxygen88.xml", 18 | --thumbnail = nil, 19 | protocol = DEVICE_PROTOCOL.MIDI, 20 | }, 21 | 22 | applications = { 23 | 24 | PatternCursor = { 25 | mappings = { 26 | prev_line_editstep = { 27 | group_name = "PrevNext", 28 | index = 1, 29 | }, 30 | next_line_editstep = { 31 | group_name = "PrevNext", 32 | index = 2, 33 | } 34 | } 35 | }, 36 | 37 | } 38 | } 39 | 40 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/QuNeo/quneo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/QuNeo/quneo.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Remote-SL-MKII/Configurations/Remote_XYPad.lua: -------------------------------------------------------------------------------- 1 | 2 | duplex_configurations:insert { 3 | 4 | -- configuration properties 5 | name = "XYPad", 6 | pinned = true, 7 | 8 | -- device properties 9 | device = { 10 | class_name = nil, 11 | display_name = "Remote SL MKII Automap", 12 | device_port_in = "Automap MIDI", 13 | device_port_out = "Automap MIDI", 14 | control_map = "Controllers/Remote-SL-MKII/Controlmaps/Remote-SL-MKII.xml", 15 | thumbnail = "Controllers/Remote-SL-MKII/Remote-SL-MKII.bmp", 16 | protocol = DEVICE_PROTOCOL.MIDI 17 | }, 18 | 19 | applications = { 20 | XYPad = { 21 | mappings = { 22 | xy_pad = { 23 | group_name = "XYPad", 24 | index = 1 25 | }, 26 | } 27 | }, 28 | Keyboard_PitchBend = { 29 | application = "Keyboard", 30 | mappings = { 31 | pitch_bend = { 32 | group_name = "PB", 33 | index = 1, 34 | }, 35 | }, 36 | options = { 37 | pitch_bend = "Route to CC#41" -- Route to CC#41, as 0-40 are being used 38 | }, 39 | hidden_options = { -- hide all options but "pitch_bend" 40 | "instr_index","track_index","velocity_mode","keyboard_mode","base_volume","channel_pressure","release_type","button_width","button_height","base_octave","upper_note","lower_note", 41 | }, 42 | }, 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Remote-SL-MKII/Remote-SL-MKII.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Remote-SL-MKII/Remote-SL-MKII.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/Remote-SL-MKII/Remote-SL-MKII.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.Remote-SL-MKII 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/Configurations/HandsetKeys.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.TouchOSC 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Handset - keys", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = "TouchOSC", 14 | display_name = "TouchOSC", 15 | device_prefix = nil, 16 | device_address = "10.0.0.2", 17 | device_port_in = "8001", 18 | device_port_out = "8081", 19 | control_map = "Controllers/TouchOSC/Controlmaps/TouchOSC_Keys.xml", 20 | thumbnail = "Controllers/TouchOSC/TouchOSC.bmp", 21 | protocol = DEVICE_PROTOCOL.OSC, 22 | }, 23 | 24 | applications = { 25 | Keyboard1 = { 26 | application = "Keyboard", 27 | mappings = { 28 | keys = { 29 | group_name = "Keyboard1", 30 | } 31 | } 32 | }, 33 | Keyboard2 = { 34 | application = "Keyboard", 35 | mappings = { 36 | keys = { 37 | group_name = "Keyboard2", 38 | } 39 | } 40 | }, 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/Presets/Duplex_iPad_performance.touchosc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/Presets/Duplex_iPad_performance.touchosc -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/TouchOSC.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/TouchOSC.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/TouchOSC/TouchOSC.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.TouchOSC 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: TouchOSC > OscDevice > Device 8 | 9 | A device-specific class 10 | 11 | 12 | --]] 13 | 14 | 15 | --============================================================================== 16 | 17 | class "TouchOSC" (OscDevice) 18 | 19 | function TouchOSC:__init(name, message_stream,prefix,address,port_in,port_out) 20 | TRACE("TouchOSC:__init", name, message_stream,prefix,address,port_in,port_out) 21 | 22 | OscDevice.__init(self, name, message_stream,prefix,address,port_in,port_out) 23 | 24 | -- this device has a monochrome color-space 25 | self.colorspace = {1, 1, 1} 26 | 27 | -- bundle messages (recommended for wireless devices) 28 | self.bundle_messages = true 29 | 30 | end 31 | 32 | 33 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/ZoomR16/Configurations/Transport.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.ZoomR16 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Transport", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | class_name = "ZoomR16", 14 | display_name = "ZoomR16", 15 | device_port_in = "ZOOM R16_24 Audio Interface", 16 | device_port_out = "ZOOM R16_24 Audio Interface", 17 | control_map = "Controllers/ZoomR16/Controlmaps/ZoomR16.xml", 18 | --thumbnail = "", 19 | protocol = DEVICE_PROTOCOL.MIDI 20 | }, 21 | 22 | applications = { 23 | Transport = { 24 | mappings = { 25 | stop_playback = { 26 | group_name = "Buttons", 27 | index = 1, 28 | }, 29 | start_playback = { 30 | group_name = "Buttons", 31 | index = 2, 32 | }, 33 | 34 | } 35 | }, 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/ZoomR16/Controlmaps/ZoomR16.xml: -------------------------------------------------------------------------------- 1 | 2 | Zoom R16 3 | Cylab 4 | Controlmap for Zoom R16 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/ZoomR16/ZoomR16.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.ZoomR16 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: ZoomR16 > MidiDevice > Device 8 | 9 | A device-specific class 10 | 11 | --]] 12 | 13 | 14 | --============================================================================== 15 | 16 | class "ZoomR16" (MidiDevice) 17 | 18 | function ZoomR16:__init(display_name, message_stream, port_in, port_out) 19 | TRACE("ZoomR16:__init", display_name, message_stream, port_in, port_out) 20 | 21 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 22 | 23 | end 24 | 25 | 26 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Configurations/Effect.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.microKONTROL 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Effect", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | display_name = "microKONTROL", 14 | device_port_in = "MIDIIN2 (microKONTROL)", 15 | device_port_out = "MIDIOUT2 (microKONTROL)", 16 | control_map = "Controllers/microKONTROL/Controlmaps/microKONTROL.xml", 17 | thumbnail = "Controllers/microKONTROL/microKONTROL.bmp", 18 | protocol = DEVICE_PROTOCOL.MIDI 19 | }, 20 | 21 | applications = { 22 | Effect = { 23 | mappings = { 24 | parameters = { 25 | group_name= "Encoders" 26 | }, 27 | device = { 28 | group_name = "Pads B" 29 | }, 30 | param_prev = { 31 | group_name = "Joystick", 32 | index = 1, 33 | }, 34 | param_next = { 35 | group_name = "Joystick", 36 | index = 2, 37 | }, 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Configurations/Mixer.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.microKONTROL 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | duplex_configurations:insert { 6 | 7 | -- configuration properties 8 | name = "Mixer", 9 | pinned = true, 10 | 11 | -- device properties 12 | device = { 13 | display_name = "microKONTROL", 14 | device_port_in = "MIDIIN2 (microKONTROL)", 15 | device_port_out = "MIDIOUT2 (microKONTROL)", 16 | control_map = "Controllers/microKONTROL/Controlmaps/microKONTROL.xml", 17 | thumbnail = "Controllers/microKONTROL/microKONTROL.bmp", 18 | protocol = DEVICE_PROTOCOL.MIDI 19 | }, 20 | 21 | applications = { 22 | Mixer = { 23 | mappings = { 24 | mute = { 25 | group_name = "Pads A" 26 | }, 27 | solo = { 28 | group_name = "Pads B" 29 | }, 30 | panning = { 31 | group_name = "Encoders" 32 | }, 33 | levels = { 34 | group_name = "Sliders" 35 | }, 36 | page = { 37 | group_name = "Joystick" 38 | } 39 | }, 40 | options = { 41 | pre_post = 2 42 | } 43 | } 44 | } 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Presets/microKONTROL.mkd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Presets/microKONTROL.mkd -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Presets/microKONTROL.mks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/Presets/microKONTROL.mks -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/microKONTROL.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/microKONTROL.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/microKONTROL/microKONTROL.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.microKONTROL 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: MidiDevice > Device 8 | 9 | A generic MidiDevice class 10 | 11 | --]] 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL/nanoKONTROL.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL/nanoKONTROL.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL/nanoKONTROL.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.NanoKontrol 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: NanoKontrol > MidiDevice > Device 8 | 9 | A device-specific class 10 | 11 | --]] 12 | 13 | 14 | --============================================================================== 15 | 16 | class "NanoKontrol" (MidiDevice) 17 | 18 | function NanoKontrol:__init(display_name, message_stream, port_in, port_out) 19 | TRACE("NanoKontrol:__init", display_name, message_stream, port_in, port_out) 20 | 21 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 22 | 23 | self.loopback_received_messages = false 24 | end 25 | 26 | 27 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL2/nanoKONTROL2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL2/nanoKONTROL2.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/nanoKONTROL2/nanoKONTROL2.lua: -------------------------------------------------------------------------------- 1 | --[[---------------------------------------------------------------------------- 2 | -- Duplex.NanoKontrol2 3 | ----------------------------------------------------------------------------]]-- 4 | 5 | --[[ 6 | 7 | Inheritance: NanoKontrol > MidiDevice > Device 8 | 9 | A device-specific class 10 | 11 | --]] 12 | 13 | --============================================================================== 14 | 15 | class "NanoKontrol2" (MidiDevice) 16 | 17 | function NanoKontrol2:__init(display_name, message_stream, port_in, port_out) 18 | TRACE("NanoKontrol2:__init", display_name, message_stream, port_in, port_out) 19 | 20 | MidiDevice.__init(self, display_name, message_stream, port_in, port_out) 21 | 22 | 23 | end 24 | 25 | 26 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/unknown.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/unknown.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/Duplex/UILabel.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | -- Duplex.UILabel 3 | -- Inheritance: UIComponent > UILabel 4 | ============================================================================]]-- 5 | 6 | --[[-- 7 | UILabel is a component designed for basic text display 8 | 9 | --]] 10 | 11 | --============================================================================== 12 | 13 | 14 | class 'UILabel' (UIComponent) 15 | 16 | -------------------------------------------------------------------------------- 17 | 18 | --- Initialize the UILabel class 19 | -- @param app (@{Duplex.Application}) 20 | -- @param map[opt] (table) mapping properties 21 | 22 | function UILabel:__init(app,map) 23 | TRACE("UILabel:__init()",app,map) 24 | 25 | self._text = nil 26 | 27 | UIComponent.__init(self,app,map) 28 | 29 | end 30 | 31 | -------------------------------------------------------------------------------- 32 | 33 | function UILabel:set_text(str_text) 34 | TRACE("UILabel:_set_text()",str_text) 35 | 36 | str_text = tostring(str_text) 37 | 38 | if (str_text ~= self._text) then 39 | self._text = str_text 40 | local point = CanvasPoint() 41 | point.val = str_text 42 | self.canvas:write(point,1,1) 43 | self:invalidate() 44 | end 45 | 46 | end 47 | 48 | -------------------------------------------------------------------------------- 49 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/README.md: -------------------------------------------------------------------------------- 1 | # Duplex 2 | 3 | *MIDI/OSC controller framework for Renoise.* 4 | 5 | Duplex is a collection of scripts that you install as a single Renoise tool. The scripts can run on a wide range of hardware, and works together to offer full, bi-directional control of the Renoise mixer/effects/pattern matrix. But Duplex is also about the weird and wonderful stuff, like custom-built sequencers and performance tools. 6 | 7 | What makes Duplex special is the strong focus on bi-directional communication. In practice, this will ensure that your controller is always in sync with Renoise, no matter if you change a value on screen, or via your controller. Duplex is also highly configurable and encourages 'hacking via configuration files'. 8 | 9 | ## [Installation](Docs/Installation.md) 10 | 11 | ## [Getting Started](Docs/GettingStarted.md) 12 | 13 | ## [Bundled Applications](Docs/Applications.md) 14 | 15 | ## [Devices & Troubleshooting](Docs/Controllers.md) 16 | 17 | ## [Custom Configurations](Docs/Configurations.md) 18 | 19 | ## [Control-Map Reference](Docs/Controlmaps.md) 20 | 21 | ## [Frequently Asked Questions](Docs/FAQ.md) 22 | 23 | ## [Links and Resources](Docs/Resources.md) 24 | 25 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/config.ld: -------------------------------------------------------------------------------- 1 | project = 'Duplex' 2 | description = 'Duplex Framework' 3 | full_description = [[ 4 | Documentation of the Duplex framework, its classes and applications 5 | ]] 6 | file = {'com.renoise.Duplex.xrnx',exclude = {'Duplex/Application.lua'}} 7 | no_summary = false 8 | no_return_or_parms = false 9 | format = 'markdown' 10 | new_type("mapping","Mappings") 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.Duplex.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5.0 4 | com.renoise.Duplex 5 | 1.07 6 | danoise [bjorn.nesby@googlemail.com] 7 | Duplex Browser 8 | Midi Controllers, OSC Controllers 9 | Duplex is a collection of scripts that can run on a wide range of hardware, and offer full, bi-directional control of the Renoise mixer/effects/pattern matrix. Creates a new menu 'Duplex' in the global 'Tools' menu. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/documentation/Epic Arpeggiator V3.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/documentation/Epic Arpeggiator V3.0.pdf -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/env_presets/EA25_1_3_7_regular.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3.00 4 | 1,3,7 5 | 3 6 | -12 7 | false 8 | 1 9 | 1 10 | 0,4,8 11 | 2 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_env_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_env_profile.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_envelope_arp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_envelope_arp.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_envelope_arp_armed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_envelope_arp_armed.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_ins_volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_ins_volume.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_matrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_matrix.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_octave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_octave.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_note_profile.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_options.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pattern_arp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pattern_arp.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pattern_arp_armed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pattern_arp_armed.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pool_area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_pool_area.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.EpicArpeggiator.xrnx/images/tab_presets.png -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Epic Arpeggiator 4 | com.renoise.EpicArpeggiator 5 | 2.94 6 | 3.0 7 | Vincent Voois [ http://tinyurl.com/vvrns ] 8 | Pattern Editor 9 | Create new note sequences with a note matrix GUI and a lot of other very powerful arpeggiator features. Can be found in the 'Tools' menu as 'Epic Arpeggiator...'. 10 | 11 | http://tools.renoise.com 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tools/com.renoise.EpicArpeggiator.xrnx/midi_device.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | mididevice.lua 3 | ============================================================================]]-- 4 | 5 | class "MidiDumper" 6 | function MidiDumper:__init(device_name) 7 | self.device_name = device_list[selected_device] 8 | end 9 | 10 | function MidiDumper:start() 11 | self.device = renoise.Midi.create_input_device( 12 | self.device_name, 13 | { self, MidiDumper.midi_callback }, 14 | { MidiDumper.sysex_callback, self } 15 | ) 16 | opened_device = self.device 17 | end 18 | 19 | function MidiDumper:stop() 20 | -- For some reason self.device turns nil here.... 21 | -- Solved it by using selected_device as a global 22 | -- substitute. 23 | if opened_device then 24 | opened_device:close() 25 | opened_device = nil 26 | end 27 | end 28 | 29 | 30 | function MidiDumper:midi_callback(message) 31 | -- print(("%s: MidiDumper got MIDI %X %X %X"):format( 32 | -- self.device_name, message[1], message[2], message[3])) 33 | process_messages(message) 34 | end 35 | 36 | function MidiDumper:sysex_callback(message) 37 | print(("%s: MidiDumper got SYSEX with %d bytes"):format( 38 | self.device_name, #message)) 39 | end 40 | 41 | -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleTool.xrnx/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.ExampleTool.xrnx/icon.png -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleTool.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 4 | com.renoise.ExampleTool 5 | 1.0 6 | taktik [taktik@renoise.com] 7 | Renoise Scripting Tool Example 8 | Tool Development 9 | A XRNX tool which describes step by step and in depth how to create Renoise XRNX tools. Please have a look at the source files of this tool (manifest.xml and main.lua) for more info. Also creates a new menu 'Example Tool' in the global 'Tools' menu. 10 | http://scripting.renoise.com 11 | icon.png 12 | Windows, Mac, Linux 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/MiniPiano.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/MiniPiano.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/RenoiseLua.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/RenoiseLua.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/RenoiseLua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.ExampleToolGui.xrnx/Bitmaps/RenoiseLua.png -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleToolGui.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 4 | com.renoise.ExampleToolGui 5 | 1.0 6 | taktik [taktik@renoise.com] 7 | Renoise ViewBuilder API Example 8 | Tool Development 9 | A XRNX tool which describes step by step how to create custom GUIs for your Renoise XRNX tools. Please have a look at the source files of this tool (manifest.xml and main.lua) for more info. Also creates a new menu 'Example Tool GUI' in the global 'Tools' menu. 10 | http://scripting.renoise.com 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.ExampleToolSlicedProcess.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 4 | com.renoise.ExampleToolSlicedProcess 5 | 1.0 6 | taktik [taktik@renoise.com] 7 | Renoise Scripting Tool Example 8 | Tool Development 9 | Example tool that shows how to use coroutines to slice up processing functions. 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.FindAndReplace.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.FindAndReplace 5 | 1.1 6 | taktik [taktik@renoise.com] 7 | PatternEditor Find And Replace 8 | Pattern Editor 9 | A tool for finding & replacing raw pattern data (notes, instruments, fx, ...). Has simple wildcard support and the ability to batch replace all occurrences. Shows up as 'Find And Replace...' in the Pattern Editor's context menu. 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.GridPie.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6.1 4 | com.renoise.GridPie 5 | 1.0 6 | Dac Chartrand [dac@renoise.com] 7 | Grid Pie 8 | Renoise cut and pastry. Live sequence recombinator. 9 | -------------------------------------------------------------------------------- /Tools/com.renoise.IRCclient.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.IRCclient 5 | 1.22 6 | Vincent Voois ( http://tinyurl.com/vvrns ) 7 | Simple IRC Client 8 | Tools 9 | Log on to #renoise on espernet 10 | http://tools.renoise.com 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.MidiConvert.xrnx/import.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | import.lua 3 | ============================================================================]]-- 4 | 5 | --[[ 6 | 7 | ProcessSlicer() related... 8 | 9 | I tried to make an OO class, but yield would throw: 10 | $ Error: attempt to yield across metamethod/C-call boundary 11 | 12 | I also tried to make a Lua module, but I got: 13 | $ Error: attempt to get length of upvalue [...] 14 | 15 | Dinked around for hours, gave up. 16 | Thusly, this file is procedural. Each function is to be prepended with `import_` 17 | Good times. 18 | 19 | ]]-- 20 | 21 | --[[ 22 | 23 | TODO: 24 | A lot of work. :) 25 | 26 | local example = Midi() 27 | example:importMid("/path/to/test.midi") 28 | print(example:getTxt()) 29 | -- Or: 30 | -- rprint(example.tracks) 31 | 32 | ]]-- -------------------------------------------------------------------------------- /Tools/com.renoise.MidiConvert.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.MidiConvert 5 | 0.96 6 | Dac Chartrand, Marvin Tjon, Bjorn Nesby, reaby 7 | Midi Convert 8 | Tools 9 | Converts a Renoise song into a MIDI file. Notes are grouped by instrument and exported per track. Creates "Export Song to MIDI..." in the File menu, "Selection:Export to MIDI..." in the Pattern Editor menu, and an "Export Selection to MIDI" keybinding. 10 | http://www.renoise.com 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.MidiPerformer.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.MidiPerformer 5 | 0.21 6 | danoise [bjorn.nesby@gmail.com] 7 | MidiPerformer 8 | Midi 9 | A tool that brings basic MIDI record-arming to Renoise 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.MidiPerformer.xrnx/source/MP_Prefs.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | MP_Prefs 3 | ============================================================================]]-- 4 | 5 | --[[ 6 | 7 | Preferences for MidiPerformer 8 | 9 | TODO autoshow 10 | 11 | ]] 12 | 13 | --============================================================================== 14 | 15 | class 'MP_Prefs'(renoise.Document.DocumentNode) 16 | 17 | function MP_Prefs:__init() 18 | 19 | renoise.Document.DocumentNode.__init(self) 20 | self:add_property("autostart", renoise.Document.ObservableBoolean(true)) 21 | self:add_property("autoshow", renoise.Document.ObservableBoolean(true)) 22 | self:add_property("autofix_track_assignments", renoise.Document.ObservableBoolean(true)) 23 | self:add_property("autoarm_on_edit_enable", renoise.Document.ObservableBoolean(true)) 24 | self:add_property("disable_when_track_silent", renoise.Document.ObservableBoolean(true)) 25 | self:add_property("disable_when_track_muted", renoise.Document.ObservableBoolean(true)) 26 | self:reset() 27 | 28 | end 29 | 30 | ------------------------------------------------------------------------------- 31 | 32 | function MP_Prefs:reset() 33 | 34 | self.autostart.value = true 35 | self.autoshow.value = true 36 | self.autofix_track_assignments.value = false 37 | self.autoarm_on_edit_enable.value = false 38 | self.disable_when_track_silent.value = true 39 | self.disable_when_track_muted.value = true 40 | 41 | end 42 | 43 | -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_black.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_black.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_grid.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_grid.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_renlogo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_renlogo.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_snake.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_snake.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall1.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall2.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/cell_wall3.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/Bitmaps/nibbles.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Nibbles.xrnx/Bitmaps/nibbles.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Nibbles.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.Nibbles 5 | 2.21 6 | 4Tey, KMaki, Dac Chartrand [dac@renoise.com] 7 | Nibbles 8 | Game 9 | Nibbles, what else? 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.Noodletrap.xrnx/classes/NTrapEvent.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | -- NTrap 3 | ============================================================================]]-- 4 | 5 | --[[-- 6 | 7 | MIDI/Note event for Noodletrap 8 | 9 | --]] 10 | 11 | --============================================================================== 12 | 13 | 14 | class 'NTrapEvent' 15 | 16 | function NTrapEvent:__init(...) 17 | 18 | local args = cLib.unpack_args(...) 19 | 20 | -- (number) 21 | self.timestamp = args.timestamp 22 | 23 | -- (bool) 24 | self.is_note_on = args.is_note_on 25 | 26 | -- (int) between 0 and 119 27 | self.pitch = args.pitch 28 | 29 | -- (int) between 0x00 and 0x7F 30 | self.velocity = args.velocity 31 | 32 | -- (int) renoise octave offset 33 | self.octave = args.octave 34 | 35 | -- (renoise.SongPos) 36 | self.playpos = args.playpos 37 | 38 | end 39 | 40 | 41 | function NTrapEvent:__tostring() 42 | 43 | return ("%s(timestamp = %s," 44 | .."is_note_on = %s," 45 | .."pitch = %s," 46 | .."velocity = %s," 47 | .."octave = %s," 48 | .."playpos = %s)"):format( 49 | type(self), 50 | self.timestamp, 51 | tostring(self.is_note_on), 52 | tostring(self.pitch), 53 | tostring(self.velocity), 54 | tostring(self.octave), 55 | tostring(self.playpos)) 56 | 57 | 58 | end 59 | 60 | 61 | -------------------------------------------------------------------------------- /Tools/com.renoise.Noodletrap.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Noodletrap 4 | com.renoise.Noodletrap 5 | 0.98 6 | 5 7 | danoise (bjorn@renoise.com) 8 | Recording 9 | Noodletrap will allow you to record notes (a.k.a. 'noodlings') into the selected instrument via automatically allocated phrases. Launch from the tool menu, or by using the supplied keyboard/MIDI shortcuts 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.NotesRandomizer.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.NotesRandomizer 5 | 1.11 6 | Dac Chartrand [dac@renoise.com] 7 | Randomize Notes 8 | Pattern Editor 9 | Randomizes or shuffles notes in various tonal modes and ranges, in order to create new random variations of existing sequences. Shows up as 'Randomize Notes...' in the Pattern Editors context menu and also creates some shortcuts (look for 'randomize') in the Pattern Editor. 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.NotesStrum.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.NotesStrum 5 | 2.41 6 | Vincent Voois [ http://tinyurl.com/vvrns ] 7 | Strum Notes 8 | Pattern Editor 9 | Adds note delay values for notes on the same row, to get a plucked instrument alike effect. 10 | Can be found in the Pattern Editor's context menu (right click some where in the Pattern Editor). 11 | 12 | http://tools.renoise.com 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.PatternRotate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.PatternRotate 5 | 1.2 6 | Taktik (taktik@renoise.com) 7 | Rotate Pattern 8 | Pattern Editor 9 | Rotates pattern content (shift and wrap content around the pattern start and end) and automation points for the current pattern. 10 | 11 | Creates a new menu entry 'Rotate...' in the Pattern Editor's context menu. Also adds Pattern Editor shortcuts to quickly rotate selection content up and down. 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.PhraseMate 5 | 1.73 6 | danoise [bjorn.nesby@gmail.com] 7 | PhraseMate 8 | Pattern Editor, Phrase Editor 9 | A tool for writing instrument phrases into the pattern editor. Shows up as shortcut in the Tool menu, and the content menu of the Pattern Editor (the Selection/Track submenus). 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/collect_capture_all_replace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/collect_capture_all_replace.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/phrase_control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/phrase_control.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/smart_write.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/smart_write.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_prefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_prefs.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_presets.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_props.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_props.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_read.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_write.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_write.png -------------------------------------------------------------------------------- /Tools/com.renoise.PhraseMate.xrnx/manual/tab_zxx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.PhraseMate.xrnx/manual/tab_zxx.png -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/Makefile: -------------------------------------------------------------------------------- 1 | PACKAGE_NAME=`pwd | xargs -i% basename % .xrnx | sed -e 's/\./_/g'` 2 | VERSION_NO=`grep '' manifest.xml | sed 's/.*>\(.*\)<.*/\1/' | sed -e 's/\./_/g'` 3 | TARGET=$(shell echo $(PACKAGE_NAME)_V$(VERSION_NO).xrnx) 4 | FILES=manifest.xml *.lua bin/ 5 | 6 | $(TARGET): $(FILES) 7 | zip -r $(TARGET) $(FILES) -x \*/.svn/\* 8 | 9 | clean: 10 | rm *.xrnx 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/bin/osx/SOURCE.txt: -------------------------------------------------------------------------------- 1 | The source code for all of the dependent libraries included in this build, 2 | as well as for the Rubber Band library itself, are found in the same location 3 | as this file (http://code.breakfastquay.com/projects/rubberband/files/) under 4 | the name rubberband-1.5.0-dependent-lib-source.tar.bz2. Note that if you 5 | redistribute the binary, you must also redistribute the source code (or make 6 | other provisions for which you should refer to the terms of the GPLv2). 7 | 8 | If you have any trouble retrieving the source code necessary to build this 9 | executable, please contact us at bq@breakfastquay.com. 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/bin/osx/rubberband: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Rubberband.xrnx/bin/osx/rubberband -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/bin/win32/SOURCE.txt: -------------------------------------------------------------------------------- 1 | 2 | The source code for all of the dependent libraries included in this build, 3 | as well as for the Rubber Band library itself, are found in the same location 4 | as this file (http://code.breakfastquay.com/projects/rubberband/files/) under 5 | the name rubberband-1.7.0-dependent-lib-source.tar.bz2. Note that if you 6 | redistribute this binary, you must also redistribute the source code (or make 7 | other provisions for which you should refer to the terms of the GPLv2). 8 | 9 | If you have any trouble retrieving the source code necessary to build this 10 | executable, please contact us at bq@breakfastquay.com. 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/bin/win32/rubberband.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Rubberband.xrnx/bin/win32/rubberband.exe -------------------------------------------------------------------------------- /Tools/com.renoise.Rubberband.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.Rubberband 5 | 0.11 6 | Cly/Suva [clysuva@gmail.com] 7 | Rubberband timestretch & pitch shift 8 | Sample Editor 9 | Professional timestretching and pitch shifting utility, using the opensource timestretching utility Rubberband. 10 | Adds "Timestretch..." and 'Pitch Shift...' entries into Renoises Sample Editor "Process" menu. 11 | 12 | Allows the user to make precise time corrections to the samples to match the song tempo, or to create interesting effects like pad instruments from short stab sounds. This package includes windows and mac binaries, on linux, the rubberband utility must be installed manually by issuing a command "apt-get install rubberband" or what ever equivalent of your system. 13 | 14 | Rubberband is distributed under the terms of GPL and can be downloaded from http://www.breakfastquay.com/rubberband/ 15 | 16 | This script is distributed under the terms of MIT licence. 17 | 18 | http://tools.renoise.com 19 | 20 | -------------------------------------------------------------------------------- /Tools/com.renoise.ScaleMate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.ScaleMate 5 | 0.23 6 | danoise [bjorn.nesby@gmail.com] 7 | ScaleMate 8 | Midi 9 | ScaleMate provides easy control/recording of the instrument scale and key. The tool can be launched from Tools > ScaleMate, and adds a number of keyboard shortcuts and MIDI mappings 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.ScaleMate.xrnx/source/ScaleMate_Prefs.lua: -------------------------------------------------------------------------------- 1 | --[[=============================================================================================== 2 | ScaleMate_Prefs 3 | ===============================================================================================]]-- 4 | --[[ 5 | 6 | Preferences for ScaleMate 7 | 8 | ]] 9 | 10 | --================================================================================================= 11 | 12 | class 'ScaleMate_Prefs'(renoise.Document.DocumentNode) 13 | 14 | function ScaleMate_Prefs:__init() 15 | 16 | renoise.Document.DocumentNode.__init(self) 17 | self:add_property("write_to_pattern", renoise.Document.ObservableBoolean(true)) 18 | 19 | end 20 | 21 | -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/RM-saw.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/RM-saw.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/RM-sine.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/RM-sine.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/RM-square.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/RM-square.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/RM-tri.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/RM-tri.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/arrow-left.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/arrow-left.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/arrow-right.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/arrow-right.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/center-amplify.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/center-amplify.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/center-fade.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/center-fade.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/copy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/copy.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/fade-in.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/fade-in.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/fade-out.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/fade-out.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/random.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/random.png -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/random_small.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/random_small.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/resize_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/resize_expand.png -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/resize_shrink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/resize_shrink.png -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/shift-minus1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/shift-minus1.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/shift-minus24.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/shift-minus24.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/shift-plus1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/shift-plus1.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/shift-plus24.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/shift-plus24.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-brown.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-brown.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-pink.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-pink.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-violet.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-violet.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-white.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise-white.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-noise.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-saw.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-saw.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-sine.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-sine.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-sine2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-sine2.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-square.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-square.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/wave-tri.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/wave-tri.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/whole-amplify.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/whole-amplify.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/images/whole-fade.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SelectionShaper.xrnx/images/whole-fade.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.SelectionShaper 5 | 3 6 | danoise [danoise@renoise.com] 7 | Selection Shaper Kai 8 | sample 9 | Generate and modify samples in Sample editor. The successor of 'org.uprime22.selection_shaper_kai by uprime22 & satobox' 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.SelectionShaper.xrnx/source/gui_util.lua: -------------------------------------------------------------------------------- 1 | bitmap_util = function() 2 | local bitmap = {} 3 | bitmap.flick_range = "images/arrow-right.bmp" 4 | bitmap.flick_back = "images/arrow-left.bmp" 5 | bitmap.sin_2pi = "images/wave-sine2.bmp" 6 | bitmap.saw = "images/wave-saw.bmp" 7 | bitmap.square = "images/wave-square.bmp" 8 | bitmap.triangle = "images/wave-tri.bmp" 9 | bitmap.white_noise = "images/wave-noise-white.bmp" 10 | bitmap.brown_noise = "images/wave-noise-brown.bmp" 11 | bitmap.violet_noise ="images/wave-noise-violet.bmp" 12 | bitmap.phase_shift_plus = "images/shift-plus24.bmp" 13 | bitmap.phase_shift_minus = "images/shift-minus24.bmp" 14 | bitmap.phase_shift_fine_plus = "images/shift-plus1.bmp" 15 | bitmap.phase_shift_fine_minus = "images/shift-minus1.bmp" 16 | bitmap.center_fade = "images/center-fade.bmp" 17 | bitmap.center_amplify = "images/center-amplify.bmp" 18 | bitmap.fade_out = "images/fade-out.bmp" 19 | bitmap.fade_in = "images/fade-in.bmp" 20 | bitmap.multiply_lower = "images/whole-fade.bmp" 21 | bitmap.multiply_raise = "images/whole-amplify.bmp" 22 | bitmap.random_wave = "images/random.png" 23 | bitmap.run_random = "images/random_small.bmp" 24 | bitmap.ring_mod_sin = "images/RM-sine.bmp" 25 | bitmap.ring_mod_saw = "images/RM-saw.bmp" 26 | bitmap.ring_mod_square = "images/RM-square.bmp" 27 | bitmap.ring_mod_triangle = "images/RM-tri.bmp" 28 | bitmap.pd_copy = nil 29 | bitmap.resize_expand = "images/resize_expand.png" 30 | bitmap.resize_shrink = "images/resize_shrink.png" 31 | return bitmap 32 | end 33 | -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/docs/slicemate-workflow-sxx-edited.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SliceMate.xrnx/docs/slicemate-workflow-sxx-edited.gif -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/docs/slicemate-workflow-sxx-root.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SliceMate.xrnx/docs/slicemate-workflow-sxx-root.gif -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/docs/splash_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SliceMate.xrnx/docs/splash_big.png -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.SliceMate 5 | 0.251 6 | danoise [bjorn.nesby@gmail.com] 7 | SliceMate 8 | Pattern Editor, Sample, Slice 9 | A tool that makes it easy to slice and trigger samples/phrases within the pattern editor. To use the tool, search for SliceMate in Renoise preferences > keyboard shortcuts 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/source/icons/detach.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SliceMate.xrnx/source/icons/detach.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.SliceMate.xrnx/source/icons/warning.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.SliceMate.xrnx/source/icons/warning.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/docs/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Sononymph.xrnx/docs/screenshot.png -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/docs/splash-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Sononymph.xrnx/docs/splash-large.png -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SononymPilot 4 | com.renoise.Sononymph 5 | 5 6 | 0.1 7 | danoise [bjorn.nesby@gmail.com] 8 | Integration 9 | This tool adds Sononym integration to Renoise. Launch from the Tools menu 10 | http://renoise.com/tools/xStream 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/source/AppPrefs.lua: -------------------------------------------------------------------------------- 1 | class 'AppPrefs'(renoise.Document.DocumentNode) 2 | 3 | --------------------------------------------------------------------------------------------------- 4 | -- constructor, initialize with default values 5 | 6 | function AppPrefs:__init() 7 | 8 | renoise.Document.DocumentNode.__init(self) 9 | 10 | self:add_property("autostart", renoise.Document.ObservableBoolean(false)) 11 | self:add_property("polling_interval", renoise.Document.ObservableNumber(1)) 12 | self:add_property("path_to_exe", renoise.Document.ObservableString("")) 13 | self:add_property("path_to_config", renoise.Document.ObservableString("")) 14 | self:add_property("show_transfer_warning", renoise.Document.ObservableBoolean(true)) 15 | self:add_property("show_search_warning", renoise.Document.ObservableBoolean(true)) 16 | self:add_property("show_prefs", renoise.Document.ObservableBoolean(true)) 17 | 18 | end 19 | 20 | -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/source/icons/detach.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Sononymph.xrnx/source/icons/detach.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/source/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Sononymph.xrnx/source/icons/logo.png -------------------------------------------------------------------------------- /Tools/com.renoise.Sononymph.xrnx/source/icons/warning.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.Sononymph.xrnx/source/icons/warning.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.Soundcloud.xrnx/bin/osx/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | SoundCloud Desktop Sharing Kit for Mac OS. 3 | 4 | This tool expects "__root__/bin/osx/Share On SoundCloud.app" to be here. 5 | 6 | @see: https://github.com/soundcloud/soundcloud-mac-sharing 7 | -------------------------------------------------------------------------------- /Tools/com.renoise.Soundcloud.xrnx/bin/win/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | SoundCloud Desktop Sharing Kit for Microsoft Windows. 3 | 4 | This tool expects "__root__/bin/win/Share On SoundCloud.exe" to be here. 5 | 6 | @see: https://github.com/soundcloud/soundcloud-win-sharing 7 | -------------------------------------------------------------------------------- /Tools/com.renoise.Soundcloud.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.Soundcloud 5 | 0.41 6 | Dac Chartrand [dac@renoise.com] 7 | Render Song to Soundcloud 8 | A simple interface to the SoundCloud Desktop Sharing Kit. Creates "Render Song to SoundCloud..." in the File menu. Renders a 32bit WAV with the same sample rate as your current settings, cubic interpolation. 9 | http://www.renoise.com 10 | Windows, Mac 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.TempoTap.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.TempoTap 5 | 7.01 6 | bantai [marvin@renoise.com] 7 | Tempo Tap 8 | Song 9 | Sets or finds a new BPM value by tapping the beat on a really big button. Adds a new context menu entry 'Tempo Tap' to the 'Tools' menu. 10 | http://tools.renoise.com/tools/tempotap 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.ToggleDSPs.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.ToggleDSPs 5 | 9.01 6 | Marvin Tjon | Bantai 7 | Toggle DSPs 8 | DSP 9 | Provides menu items and keybindings to toggle DSPs in the current track or in the whole song. 10 | http://tools.renoise.com/tools/toggle-dsps 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.ToolUpdater.xrnx/images/link-icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.ToolUpdater.xrnx/images/link-icon.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.ToolUpdater.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.ToolUpdater 5 | 6 6 | Bantai | marvin@renoise.com 7 | Tool Updater 8 | Tool Management 9 | Looks for available updates of installed Tools, which will then be downloaded from the Renoise server and installed. 10 | http://tools.renoise.com 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.UpdateChecker.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.UpdateChecker 5 | 8 6 | bantai [marvin@renoise.com] 7 | Update Checker 8 | Networking 9 | Checks for Renoise updates. 10 | http://www.renoise.com/product-version-checker?prod=Renoise 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.03 - 9th July 2018 4 | 5 | - Fixed #144: "too many columns" dialog does not sort notes bug 6 | - Fixed #143: error when instantiating tool via context menu bug 7 | 8 | ## 1.02 - 23rd August 2016 9 | 10 | - New mode: "Compact" sort mode (see README for details) 11 | - Fixes a number of bugs for the "normal" sorting mode. 12 | 13 | ## 1.01 - 10th August 2016 14 | 15 | - FEATURE Added context-menu entries to pattern/phrase editor 16 | - FIXED Sort 'Whole Phrase' could throw error 17 | - FIXED Merge 'Whole Pattern' could throw error 18 | - FIXED Sorting phrases without sample columns + 'unique instrument' option enabled now working 19 | 20 | ## 1.00 - 9th August 2016 21 | 22 | - Initial release 23 | -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | false 5 | com.renoise.VoiceRunner 6 | 1.03 7 | danoise [bjorn.nesby@gmail.com] 8 | VoiceRunner 9 | Pattern 10 | A tool for advanced sorting of notes in pattern-tracks and phrases 11 | 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/manual/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.VoiceRunner.xrnx/manual/screenshot.png -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/manual/voice-runner-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.VoiceRunner.xrnx/manual/voice-runner-demo.gif -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/manual/voice-runner-navigation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.VoiceRunner.xrnx/manual/voice-runner-navigation.gif -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/userdata/templates/Default.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | Default.lua 3 | ============================================================================]]-- 4 | 5 | return = { 6 | note_columns = { 7 | {note=48, name="C-4"}, 8 | {note=49, name="C#4"}, 9 | {note=50, name="D-4"}, 10 | {note=51, name="D#4"}, 11 | {note=52, name="E-4"}, 12 | {note=53, name="F-4"}, 13 | {note=54, name="F#4"}, 14 | {note=55, name="G-4"}, 15 | {note=56, name="G#4"}, 16 | {note=57, name="A-4"}, 17 | {note=58, name="A#4"}, 18 | {note=59, name="B-4"}, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /Tools/com.renoise.VoiceRunner.xrnx/userdata/templates/Octave C4.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | Octave C4.lua 3 | ============================================================================]]-- 4 | 5 | return = { 6 | note_columns = { 7 | {note=48, name="C-4"}, 8 | {note=49, name="C#4"}, 9 | {note=50, name="D-4"}, 10 | {note=51, name="D#4"}, 11 | {note=52, name="E-4"}, 12 | {note=53, name="F-4"}, 13 | {note=54, name="F#4"}, 14 | {note=55, name="G-4"}, 15 | {note=56, name="G#4"}, 16 | {note=57, name="A-4"}, 17 | {note=58, name="A#4"}, 18 | {note=59, name="B-4"}, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /Tools/com.renoise.Xrni-Merger.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | XRNI-Merger 4 | com.renoise.Xrni-Merger 5 | 0.9 6 | 4 7 | danoise (bjorn@renoise.com) 8 | Instrument Management 9 | This tool will allow merging resources from two instruments. Invoke the tool by right-clicking an instrument, or by selecting it from the tools menu 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.ZeroCrossings.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.ZeroCrossings 5 | 1.01 6 | danoise [bjorn.nesby@gmail.com] 7 | ZeroCrossings 8 | Sample Editor 9 | Automatically create slices for each zero crossing. Launch the tool by right-clicking in the waveform editor, or assigning a keyboard shortcut 10 | http://www.renoise.com/tools/zerocrossings 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.cLib.xrnx/README.md: -------------------------------------------------------------------------------- 1 | # About cLib 2 | 3 | This library ("cLib = core library") is a suite of classes to support the Renoise API. 4 | Learn more by opening the README (located in the cLib folder). 5 | 6 | ## Planned 7 | Extend this tool with unit-tests, using a unit-test class (cTestRunner) 8 | -------------------------------------------------------------------------------- /Tools/com.renoise.cLib.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.cLib 5 | 1.0 6 | danoise [bjorn.nesby@gmail.com] 7 | cLib 8 | Core Library 9 | The cLib library contains basic functionality (file-system, data-access) for the Renoise API. Launch a demo from Tools > cLib Demo 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.cLib.xrnx/unit_tests/Test-cNumber.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | 3 | Testcase for cNumber 4 | 5 | --]] 6 | 7 | _tests:insert({ 8 | name = "cNumber", 9 | fn = function() 10 | 11 | LOG(">>> cNumber: starting unit-test...") 12 | 13 | cLib.require (_clibroot.."cNumber") 14 | _trace_filters = {"^cNumber*"} 15 | 16 | -- basic accessors 17 | 18 | local cnum = cNumber{ 19 | value_min = 1, 20 | value_max = 100, 21 | value_quantum = 1, 22 | value = 50, 23 | } 24 | 25 | LOG("cnum",cnum) 26 | LOG("cnum.value",cnum.value) 27 | LOG("type(cnum)",type(cnum)) 28 | LOG("type(cnum.value)",type(cnum.value)) 29 | LOG("cnum()",cnum()) -- __call 30 | LOG("cnum('value')",cnum('value')) -- __call 31 | LOG("cnum.newvalue",cnum.newvalue) -- __newindex (N/A) 32 | LOG("#cnum",#cnum) -- __len 33 | 34 | cnum = cnum+20 35 | assert(cnum()==70) 36 | 37 | cnum = cnum-50 38 | assert(cnum()==20) 39 | 40 | cnum = cnum*2 41 | assert(cnum()==40) 42 | 43 | cnum = cnum/4 44 | assert(cnum()==10) 45 | 46 | LOG("cnum.value",cnum.value) 47 | 48 | -- construct based on existing instance 49 | 50 | local cnum2 = cNumber(cnum) 51 | 52 | LOG("cnum2",cnum) 53 | LOG("cnum2.value",cnum2.value) 54 | 55 | LOG(">>> cNumber: OK - passed all tests") 56 | 57 | end 58 | }) 59 | 60 | -------------------------------------------------------------------------------- /Tools/com.renoise.cLib.xrnx/unit_tests/Test-cTable.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | local foo = {1,2,3} 3 | local bar = { 4 | one = 1, 5 | two = 2, 6 | three = 3 7 | } 8 | local baz = { 9 | one = 1, 10 | two = 2, 11 | three = 3, 12 | 4, 13 | } 14 | 15 | function table_count(t) 16 | local n=0 17 | if ("table" == type(t)) then 18 | for key in pairs(t) do 19 | n = n + 1 20 | end 21 | return n 22 | else 23 | return nil 24 | end 25 | end 26 | 27 | print("foo",table_count(foo)) 28 | print("bar",table_count(bar)) 29 | rprint(bar) 30 | 31 | local function isArray(t) 32 | local i = 0 33 | for _ in pairs(t) do 34 | i = i + 1 35 | if t[i] == nil then return false end 36 | end 37 | return true 38 | end 39 | 40 | print("isArray foo",isArray(foo)) 41 | print("isArray bar",isArray(bar)) 42 | print("isArray baz",isArray(baz)) 43 | ]] -------------------------------------------------------------------------------- /Tools/com.renoise.cLib.xrnx/unit_tests/example_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | 2- SL MkII 6 | LoopBe Internal MIDI 7 | Automap MIDI 8 | 9 | 10 | LoopBe Internal MIDI 11 | 12 | 8000 13 | 127.0.0.1 14 | 15 | 16 | m128 17 | false 18 | 8002 19 | 8082 20 |
127.0.0.1
21 | /duplex 22 |
23 | 24 | 25 |
26 |
27 | -------------------------------------------------------------------------------- /Tools/com.renoise.vLib.xrnx/README.md: -------------------------------------------------------------------------------- 1 | # com.renoise.vLib.xrnx 2 | 3 | vLib is a pure lua library which can add additional GUI features to your Renoise tools. 4 | This tool contains interactive instances of those components, and is used for testing and demonstration purposes. 5 | 6 | ## More information 7 | 8 | To learn more about vLib, [look here](https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.vLib.xrnx/vLib) 9 | -------------------------------------------------------------------------------- /Tools/com.renoise.vLib.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.vLib 5 | 1.0 6 | danoise [bjorn.nesby@gmail.com] 7 | vLib 8 | UI Library 9 | The vLib library contains some useful enhancements to the Renoise ViewBuilder API. Launch a demo from Tools > vLib Demo 10 | http://renoise.com/tools/vLib 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.vLibBoilerPlate.xrnx/README.md: -------------------------------------------------------------------------------- 1 | # Renoise tool boilerplate - 2 | 3 | A simple renoise boilerplate - using cLib + vLib as the foundation. 4 | You can use this code as the foundation for writing your own tool. 5 | 6 | Demonstrates the following features: 7 | 8 | * How to configure vLib (extended UI library for Renoise) 9 | * How to launch a basic dialog 10 | * How to implement autostart (dialog+preferences) 11 | 12 | ## Installation 13 | 14 | **Via Renoise tools page** 15 | This example comes with _batteries included_, since the necessary components (vLib, cLib) are part of the distribution. In other words, install it like any other tool. 16 | 17 | **Via Github** 18 | If you've got the code from github, you need to obtain the most recent version of vLib and cLib. 19 | 20 | ## A few notes 21 | 22 | In this boilerplate, ui and preferences are implemented as separate classes. Whether you like classes or not is a matter of taste - vLib doesn't force a specific programming pattern on you (it's modelled over the viewbuilder API. If you are not familiar with that, I highly recommend studying the [docs][1] before you start using vLib) 23 | 24 | That said, I prefer to follow this kind of programming pattern as all my tools are generally of a medium-to-large size. I have no plans of creating an additional example using a different approach. 25 | 26 | [1]: https://github.com/renoise/xrnx/blob/master/Documentation/Renoise.ViewBuilder.API.lua 27 | 28 | -------------------------------------------------------------------------------- /Tools/com.renoise.vLibBoilerPlate.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.vLibBoilerPlate 5 | 0.1 6 | danoise [bjorn.nesby@gmail.com] 7 | vLibBoilerPlate 8 | Midi 9 | A barebones example of a vLib-based tool. Creates a dialog, nothing else. 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.vLibBoilerPlate.xrnx/source/vLibBoilerPlate_Prefs.lua: -------------------------------------------------------------------------------- 1 | --[[=============================================================================================== 2 | vLibBoilerPlate 3 | ===============================================================================================]]-- 4 | 5 | --[[ 6 | 7 | Preferences for vLibBoilerPlate. Having it as a class means that we can e.g. add 8 | methods like "reset to factory defaults" or "export to file" (none of which 9 | are present in this barebones example). 10 | 11 | There isn't really a "cost to having it as a class, you can still reference 12 | preferences in the usual manner (hint: this reference is set up in main.lua) 13 | 14 | ]] 15 | 16 | --================================================================================================= 17 | 18 | class 'vLibBoilerPlate_Prefs'(renoise.Document.DocumentNode) 19 | 20 | function vLibBoilerPlate_Prefs:__init() 21 | 22 | renoise.Document.DocumentNode.__init(self) 23 | self:add_property("autostart", renoise.Document.ObservableBoolean(true)) 24 | 25 | end 26 | 27 | -------------------------------------------------------------------------------- /Tools/com.renoise.xCleaner.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | true 5 | com.renoise.xCleaner 6 | 1.01 7 | danoise [bjorn.nesby@gmail.com] 8 | xCleaner 9 | Instrument 10 | Clean up an instrument by removing unused samples, modulation sets or effect chains. Launch by right-clicking in the instrument list 11 | 12 | 13 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/README.md: -------------------------------------------------------------------------------- 1 | # com.renoise.xLib.xrnx 2 | 3 | xLib is a pure lua library which can add additional functionality to your Renoise tools. 4 | This tool contains some unit-tests of the various classes contained in xLib. 5 | 6 | ## More information 7 | 8 | To learn more about xLib, [look here](https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.xLib.xrnx/source/xLib) 9 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 4 | com.renoise.xLib 5 | 0.1 6 | danoise [bjorn.nesby@gmail.com] 7 | xLib 8 | 9 | Unit tests for the xLib library 10 | 11 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/Test-xInstrument.lua: -------------------------------------------------------------------------------- 1 | -- get_slice_marker_at_pos 2 | -- get_slice_marker_after_pos 3 | -- get_num_frames_in_slice 4 | -- etc -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/Test-xLinePattern.lua: -------------------------------------------------------------------------------- 1 | -- TODO test static methods 2 | -- get_effect_command 3 | -- get_midi_command -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/Test-xMidiMessage.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | 3 | Testcase for xMidiMessage 4 | 5 | --]] 6 | 7 | _xlib_tests:insert({ 8 | name = "xMidiMessage", 9 | fn = function() 10 | 11 | LOG(">>> xMidiMessage: starting unit-test...") 12 | 13 | --require (_clibroot.."cDocument") 14 | --require (_xlibroot.."xMessage") 15 | cLib.require (_xlibroot.."xMidiMessage") 16 | _trace_filters = {"^xMidiMessage*"} 17 | 18 | --error("No tests defined...") 19 | 20 | LOG(">>> xMidiMessage: OK - passed all tests") 21 | 22 | end 23 | }) 24 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/Test-xOscMessage.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | 3 | Testcase for xOscMessage 4 | 5 | --]] 6 | 7 | _xlib_tests:insert({ 8 | name = "xOscMessage", 9 | fn = function() 10 | 11 | LOG(">>> xOscMessage: starting unit-test...") 12 | 13 | --require (_clibroot.."cDocument") 14 | --require (_xlibroot.."xMessage") 15 | --require (_xlibroot.."xOscDevice") 16 | --require (_xlibroot.."xValue") 17 | cLib.require (_xlibroot.."xOscValue") 18 | cLib.require (_xlibroot.."xOscMessage") 19 | _trace_filters = {"^xOscMessage*"} 20 | 21 | LOG("construct xOscMessage from scratch") 22 | local msg = xOscMessage{ 23 | values = { 24 | {tag = xOscValue.TAG.STRING, value = "foo"}, 25 | {tag = xOscValue.TAG.INTEGER, value = 32}, 26 | {tag = xOscValue.TAG.FLOAT, value = 3.14}, 27 | }, 28 | } 29 | 30 | assert(msg.values[1].value,"foo") 31 | assert(msg.values[2].value,32) 32 | assert(msg.values[3].value,3.14) 33 | 34 | LOG("construct xOscMessage from renoise.Osc.Message") 35 | local pattern = "/test/input/" 36 | local arguments = { 37 | {tag = xOscValue.TAG.STRING, value = "foo"}, 38 | {tag = xOscValue.TAG.INTEGER, value = 32}, 39 | {tag = xOscValue.TAG.FLOAT, value = 3.14}, 40 | } 41 | local native_msg = renoise.Osc.Message(pattern,arguments) 42 | local msg = xOscMessage(native_msg) 43 | 44 | assert(msg.values[1].value,"foo") 45 | assert(msg.values[2].value,32) 46 | assert(msg.values[3].value,3.14) 47 | 48 | LOG(">>> xOscMessage: OK - passed all tests") 49 | 50 | end 51 | }) 52 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/Test-xPatternSequencer.lua: -------------------------------------------------------------------------------- 1 | -- TODO test static methods 2 | 3 | 4 | -- get_pattern_at_index 5 | 6 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/example_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | 2- SL MkII 6 | LoopBe Internal MIDI 7 | Automap MIDI 8 | 9 | 10 | LoopBe Internal MIDI 11 | 12 | 8000 13 | 127.0.0.1 14 | 15 | 16 | m128 17 | false 18 | 8002 19 | 8082 20 |
127.0.0.1
21 | /duplex 22 |
23 | 24 | 25 |
26 |
27 | -------------------------------------------------------------------------------- /Tools/com.renoise.xLib.xrnx/unit_tests/example_preferences_output.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | 6 | 8000 7 | 127.0.0.1 8 | 9 | < type="lua_model:xOscDevice"> 10 | m128 11 | false 12 | 8002 13 | 8082 14 |
127.0.0.1
15 | /duplex 16 | 17 |
18 |
19 | -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | xRules 4 | com.renoise.xRules 5 | 0.8 6 | 5 7 | danoise (bjorn@renoise.com) 8 | MIDI 9 | xRules will allow you to rewrite and route incoming MIDI messages, using the built-in OSC server in Renoise. Launch from the tool menu, or by using the supplied keyboard/MIDI shortcuts 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/examples/Fixed Channel #.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- Visit http://www.renoise.com/tools/xrules for more info 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = false, 7 | manage_voices = false, 8 | description = "", 9 | { 10 | osc_pattern = { 11 | pattern_in = "", 12 | pattern_out = "", 13 | }, 14 | name = "", 15 | actions = { 16 | { 17 | set_channel = 1, 18 | }, 19 | { 20 | output_message = "internal_raw", 21 | }, 22 | }, 23 | conditions = {}, 24 | match_any = true, 25 | midi_enabled = true, 26 | } 27 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/examples/Launchpad Feedback.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- More info @ http://www.renoise.com/tools/xrules 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = false, 7 | manage_voices = false, 8 | description = "", 9 | { 10 | ["osc_pattern"] = { 11 | ["pattern_in"] = "", 12 | ["pattern_out"] = "", 13 | }, 14 | ["name"] = "", 15 | ["actions"] = { 16 | { 17 | ["call_function"] = [[if (type(cc_toggle)=="nil") then 18 | cc_toggle = false 19 | end 20 | if (values[1] == 111) then 21 | if (values[2] == 127) then 22 | cc_toggle = not cc_toggle 23 | end 24 | values[2] = cc_toggle and 127 or 0 25 | end 26 | ]], 27 | }, 28 | { 29 | ["output_message"] = "internal_raw", 30 | }, 31 | { 32 | ["output_message"] = "external_midi", 33 | }, 34 | }, 35 | ["conditions"] = {}, 36 | ["match_any"] = true, 37 | ["midi_enabled"] = true, 38 | } 39 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/examples/MIDIToTracks.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- More info @ http://www.renoise.com/tools/xrules 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = false, 7 | manage_voices = false, 8 | description = [[Demonstrates how to route incoming MIDI notes into specific tracks 9 | (in this case, C-2 goes to track 01 and D-2 goes to track 02) 10 | ]], 11 | { 12 | ["actions"] = { 13 | { 14 | ["call_function"] = [[-- set to this instrument (NB: 01 is "00" in Renoise) 15 | instrument_index = 1 16 | if (message_type == "note_on") 17 | or (message_type == "note_off") then 18 | -- specify track routings 19 | if (values[1] == 24) then -- C-2 20 | track_index = 1 21 | elseif (values[1] == 26) then -- D-2 22 | track_index = 2 23 | end 24 | end ]], 25 | }, 26 | { 27 | ["output_message"] = 1, 28 | }, 29 | }, 30 | ["conditions"] = {}, 31 | ["match_any"] = true, 32 | ["midi_enabled"] = true, 33 | ["name"] = "", 34 | ["osc_pattern"] = { 35 | ["pattern_in"] = "", 36 | ["pattern_out"] = "", 37 | }, 38 | } 39 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/examples/Set MIDI-out port.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- Visit http://www.renoise.com/tools/xrules for more info 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = false, 7 | manage_voices = false, 8 | description = "", 9 | { 10 | osc_pattern = { 11 | pattern_in = "", 12 | pattern_out = "", 13 | }, 14 | name = "", 15 | actions = { 16 | { 17 | set_port_name = "LoopBe Internal MIDI", 18 | }, 19 | { 20 | output_message = "external_midi", 21 | }, 22 | { 23 | set_port_name = "loopMIDI Port", 24 | }, 25 | { 26 | output_message = "external_midi", 27 | }, 28 | }, 29 | conditions = {}, 30 | match_any = true, 31 | midi_enabled = true, 32 | } 33 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/examples/TouchOSC.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- Visit http://www.renoise.com/tools/xrules for more info 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = true, 7 | manage_voices = false, 8 | description = [["Automapping" an XY Pad: the function will pass value 1+2 into any 9 | selected XY Pad - automation can be recorded too (enable edit mode) 10 | ]], 11 | { 12 | osc_pattern = { 13 | pattern_in = "/accxyz %f %f %f", 14 | pattern_out = "", 15 | }, 16 | name = "Tilt → XY Pad", 17 | actions = { 18 | { 19 | call_function = [[--rprint(values) 20 | local dev = rns.selected_device 21 | if dev and (dev.name == "*XY Pad") then 22 | local param_x = dev.parameters[1] 23 | local param_y = dev.parameters[2] 24 | local track_idx = rns.selected_track_index 25 | local y = cLib.scale_value(values[1],1,-1,0,1) 26 | local x = cLib.scale_value(values[2],-1,1,0,1) 27 | x = cLib.clamp_value(x,0,1 28 | y = cLib.clamp_value(y,0,1) 29 | if rns.transport.edit_mode then 30 | record_automation(track_idx,param_x,x) 31 | record_automation(track_idx,param_y,y) 32 | else 33 | if not has_automation(track_idx,param_x) then 34 | param_x.value = x 35 | end 36 | if not has_automation(track_idx,param_y) then 37 | param_y.value = y 38 | end 39 | end 40 | end 41 | ]], 42 | }, 43 | }, 44 | conditions = {}, 45 | match_any = true, 46 | midi_enabled = false, 47 | } 48 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/test/A very long name for which I am not sure there is room enough.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- Visit http://www.renoise.com/tools/xrules for more info 4 | ----------------------------------------------------------- 5 | return { 6 | { 7 | actions = { 8 | { 9 | output_message = 1, 10 | }, 11 | { 12 | output_message = 1, 13 | }, 14 | { 15 | output_message = 1, 16 | }, 17 | }, 18 | conditions = { 19 | { 20 | channel = { 21 | equal_to = 1, 22 | }, 23 | }, 24 | { 25 | channel = { 26 | equal_to = 1, 27 | }, 28 | }, 29 | }, 30 | }, 31 | { 32 | actions = {}, 33 | conditions = {}, 34 | } 35 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/test/Empty.lua: -------------------------------------------------------------------------------- 1 | { 2 | -- should add empty set 3 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/test/Not a ruleset.lua: -------------------------------------------------------------------------------- 1 | -- This is not a valid ruleset 2 | -- (needs to have at least some kind of 'return' statement) -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/test/Syntax error.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------- Ruleset definition for xRules-- Visit http://www.renoise.com/tools/xrules for more info-----------------------------------------------------------return { name = Untitled ruleset (1),{ 2 | actions = {}, 3 | conditions = {}, 4 | }} -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/rulesets/test/mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Ruleset definition for xRules 3 | -- Visit http://www.renoise.com/tools/xrules for more info 4 | ----------------------------------------------------------- 5 | return { 6 | osc_enabled = false, 7 | manage_voices = false, 8 | description = "",{ 9 | actions = {}, 10 | conditions = {}, 11 | } 12 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/key_small.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/key_small.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/logo-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/logo-disabled.png -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/logo.png -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/midi_small.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/midi_small.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/osc_small.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/osc_small.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/icons/save.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xRules.xrnx/source/icons/save.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xRules.xrnx/source/xRulesAppDialogHelp.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | xRulesAppDialogHelp 3 | ============================================================================]]-- 4 | 5 | --[[ 6 | 7 | This is a supporting class for xRulesApp 8 | 9 | ]] 10 | 11 | --============================================================================== 12 | 13 | class 'xRulesAppDialogHelp' (vDialog) 14 | 15 | function xRulesAppDialogHelp:__init(ui) 16 | 17 | -- xRulesUI, instance of parent class 18 | self.ui = ui 19 | 20 | -- string 21 | self.dialog_title = "xRules - help & reference" 22 | 23 | vDialog.__init(self) 24 | 25 | end 26 | 27 | ------------------------------------------------------------------------------- 28 | -- (overridden method) 29 | -- @return renoise.Views.Rack 30 | 31 | function xRulesAppDialogHelp:create_dialog() 32 | 33 | local vb = self.vb 34 | 35 | return vb:column{ 36 | vb:multiline_text{ 37 | width = 400, 38 | height = 300, 39 | font = "mono", 40 | text = [[xRules - help & reference 41 | ----------------------------------------------------------- 42 | 43 | ]] 44 | }, 45 | } 46 | 47 | end 48 | 49 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/README.md: -------------------------------------------------------------------------------- 1 | 2 | ██╗ ██╗███████╗████████╗██████╗ ███████╗ █████╗ ███╗ ███╗ 3 | ╚██╗██╔╝██╔════╝╚══██╔══╝██╔══██╗██╔════╝██╔══██╗████╗ ████║ 4 | ╚███╔╝ ███████╗ ██║ ██████╔╝█████╗ ███████║██╔████╔██║ 5 | ██╔██╗ ╚════██║ ██║ ██╔══██╗██╔══╝ ██╔══██║██║╚██╔╝██║ 6 | ██╔╝ ██╗███████║ ██║ ██║ ██║███████╗██║ ██║██║ ╚═╝ ██║ 7 | ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ 8 | 9 | 10 | xStream is a tool for Renoise that can generate and transform musical data, using a subset of the lua language. The tool supports real-time operation as well as offline processing. 11 | 12 | ## [Introduction](docs/introduction.md) 13 | 14 | ## [The User Interface](docs/user_interface.md) 15 | 16 | ## [About Models](docs/about_models.md) 17 | 18 | ## [Some Examples](docs/example_models.md) 19 | 20 | ## [Coding with xStream](docs/coding_intro.md) 21 | 22 | ## [xStream Lua Reference](docs/lua_reference.md) 23 | 24 | ## [Keyboard/MIDI mappings](docs/shortcuts_and_mappings.md) 25 | 26 | ## Links and resources 27 | 28 | * Download from the [Renoise tools page](http://www.renoise.com/tools/xstream) (latest release) 29 | * Visit the [Renoise forum](http://forum.renoise.com/index.php/topic/45618-new-tool-3031-xstream/) for discussion and bug reports. 30 | * Source code is located on [github](https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.xStream.xrnx) 31 | 32 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/about_models.md: -------------------------------------------------------------------------------- 1 | # About Models 2 | 3 | The model is where it all comes together in xStream. And a big subject to cover, so it has been split into a number of topics: 4 | 5 | ## [Coding with xStream](coding_intro.md) 6 | 7 | * Explains how real-time streaming can be done from a few lines of code. 8 | * Shows you how to work with methods and data. 9 | 10 | ## [Model arguments](model_arguments.md) 11 | 12 | * Allows you to control the behaviour of a model while it's running. 13 | * Learn how to create new arguments, and what their properties mean. 14 | 15 | ## [Model events](model_events.md) 16 | 17 | * Handle when internal arguments in a model has changed. 18 | * Respond to external events, such as MIDI Input or the Renoise API. 19 | 20 | ## [Files & formats](file_formats.md) 21 | 22 | * Easily exchangable, plain-text Lua or XML files 23 | * How the xStream userdata folder works 24 | 25 | > < Previous - [The User Interface](user_interface.md)     |     Next - [Examples](example_models.md) > 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/code_editor.md: -------------------------------------------------------------------------------- 1 | # UI: Code Editor 2 | 3 | < [The user interface](user_interface.md) 4 | 5 | The code editor is a basic textfield. It is responsible for showing you the code for the selected aspect (e.g. the `main` method), and the whether the code is valid or contains some kind of error. 6 | 7 | 8 | 9 | |Name|Description| 10 | |----|-----------| 11 | | Lines | Adjust how many lines the editor should use 12 | | Status | Provides feedback on the state of the code. Errors are displayed with a warning sign, which you can click or mouse-over for more details. 13 | | View | This popup lists the available aspects, starting `main` method, and then continuing with `data` and `events`. 14 | | Add | Adds a new aspect to the model. Clicking it will bring up the [events & data](events_data.md) dialog 15 | | Rename | Click to rename the aspect (currently, data is the only type which can be renamed). 16 | | Delete | Applies to data and events. 17 | 18 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/events_userdata.md: -------------------------------------------------------------------------------- 1 | #### Events & Data 2 | 3 | Clicking the '+' button in the code editor will bring up the Events & Data dialog. Here you can add predefined data or set up event handlers for your model: 4 | 5 | 6 | 7 | ##### Event dialog 8 | 9 | This page contains every type of event which is accessible to you. 10 | 11 | 12 | _Event dialog showing the model events selector_ 13 | 14 | 15 | * **Arguments** - The list will contain all defined arguments for the currently loaded model. 16 | * **Model events** - Lists all events which are related to the model (MIDI, voice-manager) 17 | * **Renoise events** - Lists all recognized Renoise API events 18 | 19 | ##### Data dialog 20 | 21 | 22 | 23 | This page asks you to specify a name for your data. The name has to be unique (not already in use) and a valid Lua identifier (normal latin characters, and not beginning with a number). You can choose a type too, such as `number` or `string`. 24 | 25 | When you press 'Done', a small code template is generated, according to the type of value you chose. Note that you can change this type at any time - the template is only meant as a starting point. 26 | 27 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/example_models.md: -------------------------------------------------------------------------------- 1 | # Bundled examples 2 | 3 | To help illustrate how this works, xStream comes with 'batteries included' - various examples that demonstrate its possibilities. They will help you to get a hang of the basics, and then some. 4 | 5 | |Name|Description| 6 | |----|-----------| 7 | |**Arpeggiator**|A real-time, MIDI-controllable arpeggiator. There is always room for an arpeggiator. 8 | |**Step Sequencer**|A step sequencer with a pattern-FX module for some more unusual effects. 9 | |**VoiceMgr - Live**|A demonstration of a live MIDI recording workflow, using the voice-manager to control the note duration, polyphony limit and other things. 10 | |**Exponential Delay**|Create 'bouncing ball' simulations, among other things. The controls correspond to physical aspects such as 'gravity', 'energy' and can create a wide variety of rhythms. 11 | |**Euclidean Rhythms**|Explore Euclidean number ratios to generate rhythms and melodies. 12 | |**Granular**|Swervy swarms of chopped-up sounds, using pitch and sample offset commands. Works best on ambient and atmospheric sounds. 13 | |**Chord Memory**|This model can read chords from the pattern and apply them anywhere. Useful to create shapshots of chord progressions. 14 | 15 | > < Previous - [About Models](about_models.md)     |     Next - [Coding with xStream](coding_intro.md) > 16 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/favorites.md: -------------------------------------------------------------------------------- 1 | # Favorites 2 | 3 | The favorites grid provides a visual overview of the models and presets that you want quick access to. 4 | 5 | 6 | 7 | Note that the grid is fully MIDI mappable (CMD/CTRL+M) and can be triggered via keyboard shortcuts (Renoise Preferences > Keys, search for 'xstream'). 8 | 9 | #### Editing favorites 10 | 11 | Click the 'Edit' checkbox to enter editing mode, with a number of options for each preset: 12 | 13 | * **Model/Bank/Preset** - choose the model and/or preset to store at this position. 14 | * **Launch** - specify the launch mode. 15 | * AUTOMATIC (default) - will automatically decide how to apply the favorite. 16 | * If not playing and a selection has been defined, apply to selection 17 | * If not playing and no selection exist, apply to track 18 | * Otherwise, produce streaming output 19 | * STREAMING - force favorite to use streaming mode (online) 20 | * TRACK - apply to track (offline) 21 | * SELECTION - apply to selection (offline) 22 | 23 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/file_formats.md: -------------------------------------------------------------------------------- 1 | # xStream file formats 2 | 3 | ## Models 4 | 5 | Models are saved and loaded as .lua files. This type of file can be edited in any text-editor, and copy-pasted as plain text. That makes it easy to exchange models with other people, or keep track of changes. 6 | 7 | ## Presets 8 | 9 | ... 10 | 11 | ## Preset Banks 12 | 13 | ... 14 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/argument_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/argument_editor.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/argument_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/argument_list.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/argument_tabbed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/argument_tabbed.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/arguments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/arguments.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog_data.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog_events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/callback_dialog_events.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/code_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/code_editor.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/euclidean.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/euclidean.gif -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/favorites_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/favorites_grid.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/global_toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/global_toolbar.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/model_toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/model_toolbar.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/options_general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/options_general.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/options_midi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/options_midi.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/options_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/options_output.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/options_streaming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/options_streaming.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/preset_bank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/preset_bank.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/preset_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/preset_list.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/presets.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/docs/images/screenshot.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/known_limitations.md: -------------------------------------------------------------------------------- 1 | # Known limitations, gotchas 2 | 3 | **xStream operation is limited to a single track**. This is an intentional limitation, to make give the tool a certain focus and simplicity. The roadmap however, involves multiple concurrent streaming processes. And [workarounds] exist, too. 4 | 5 | **xStream requires steady updates:** xStream is based on the Renoise API, which is running in the UI thread of the software. This means that you've got an update rate which might vary, according to the CPU load. As a result, gaps might appear in the output - finetune this behaviour in options dialog (writeahead factor). 6 | 7 | **UI Modal Dialogs:** A modal dialog is a specific type of dialogs which prevent you from accessing the program until you have chosen an action, with a common example being the "Are you sure you want to XX" prompt. Triggering this type of dialog should be avoided while streaming, as it will produce a gap in the output while visible. 8 | 9 | **Lua block comments:** The block comment is a special form of comment that allows you to wrap an entire section of text, using square brackets. The xStream editor will **not** allow you to enter this type of comment: 10 | 11 | --[[ 12 | A block comment 13 | can span several lines 14 | ... 15 | ]] 16 | 17 | You should get a warning if you enter such a comment and try to save the model. 18 | You can only use regular line comments such as this one 19 | 20 | -- this is a comment 21 | print("And this is code") 22 | 23 | 24 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/model_data.md: -------------------------------------------------------------------------------- 1 | # Models - Data 2 | 3 | Data are values that the model can use while it is running. Data can be added through the UI, and is especially useful for initializing a value to some initial state. 4 | 5 | Data can be specified as one of the following types: 6 | 7 | number 8 | table 9 | boolean 10 | string 11 | function -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/model_events.md: -------------------------------------------------------------------------------- 1 | ## Events 2 | 3 | TODO 4 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/shortcuts_and_mappings.md: -------------------------------------------------------------------------------- 1 | # Keyboard shortcuts and MIDI mappings 2 | 3 | This page lists the default mappings for the tool. 4 | 5 | Note that a model might register additional MIDI mappings with Renoise, and respond directly to the MIDI input device you have specified in xStream. 6 | 7 | ## Favorites 8 | 9 | Favorites:Favorite #01 [Trigger] 10 | Favorites:Favorite #02 [Trigger] 11 | Favorites:Favorite #03 [Trigger] 12 | Etc... 13 | 14 | ## Presets 15 | 16 | Presets:Preset #01 [Trigger] 17 | Presets:Preset #02 [Trigger] 18 | Presets:Preset #03 [Trigger] 19 | ... 20 | Presets:Select Next Preset [Trigger] 21 | Presets:Select Previous Preset [Trigger] 22 | 23 | ## Apply 24 | 25 | Apply to Track [Trigger] 26 | Apply to Selection (Local) [Trigger] 27 | Apply to Selection [Trigger] 28 | Apply to Line (Local) [Trigger] 29 | Apply to Line [Trigger] 30 | 31 | 32 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/docs/user_interface.md: -------------------------------------------------------------------------------- 1 | # The user interface 2 | 3 | 4 | 5 | 6 | This is what the tool could look like. 7 | 8 | # Main parts 9 | 10 | ## [1. Main toolbar](main_toolbar.md) 11 | 12 | ## [2. Code Editor](code_editor.md) 13 | 14 | ## [3. Preset/Bank](preset_bank.md) 15 | 16 | ## [4. Arguments](model_arguments.md) 17 | 18 | 19 | > < Previous - [Introduction](introduction.md)     |     Next - [About Models](about_models.md) > 20 | 21 | 22 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | xStream 4 | com.renoise.xStream 5 | 5 6 | 1.6 7 | danoise [bjorn.nesby@gmail.com] 8 | Renoise Team 9 | xStream is a live coding environment for Renoise which can generate or transform existing song data. Launch by using the shortcut in the Tools menu 10 | http://renoise.com/tools/xStream 11 | 12 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/add.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/add.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/bind_or_poll.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/bind_or_poll.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/delete.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/delete.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/delete_small.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/delete_small.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/lock.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/lock.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/logo.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/maximize.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/maximize.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/minimize.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/minimize.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/move_down.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/move_down.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/move_up.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/move_up.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/open.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/open.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/pin.png -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/preset_bank.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/preset_bank.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/presets.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/presets.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/refresh.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/refresh.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/rename.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/rename.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/reveal_folder.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/reveal_folder.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/save.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/save.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/save_as.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/save_as.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_a.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_a.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_b.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_b.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_c.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_c.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_d.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_d.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_none.bmp: -------------------------------------------------------------------------------- 1 | BMH6(   -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_patt - Copy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_patt - Copy.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_input_patt.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_input_patt.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_output_none.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_output_none.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_output_pass_on.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_output_pass_on.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/stack_output_patt.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/stack_output_patt.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/transport_play.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/transport_play.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/transport_record.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/transport_record.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/transport_stop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/transport_stop.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/icons/update.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renoise/tools/5e52df1e80f5e1963da66f98a01dc31d15db943b/Tools/com.renoise.xStream.xrnx/source/icons/update.bmp -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/xStreamArgsTab.lua: -------------------------------------------------------------------------------- 1 | --[[============================================================================ 2 | xStreamArgsTab 3 | ============================================================================]]-- 4 | --[[ 5 | 6 | This is a proxy class containing getter/setter methods for tabbed arguments 7 | See also xStreamArgs 8 | 9 | ]] 10 | 11 | --============================================================================== 12 | class 'xStreamArgsTab' 13 | 14 | function xStreamArgsTab:__init() 15 | 16 | -- class members are registered on the fly 17 | 18 | end 19 | 20 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/source/xStreamUserData.lua: -------------------------------------------------------------------------------- 1 | --[[=============================================================================================== 2 | xStreamUserData 3 | ===============================================================================================]]-- 4 | --[[ 5 | 6 | Methods for handling the userdata folder 7 | 8 | # 9 | 10 | ]] 11 | 12 | --================================================================================================= 13 | 14 | class 'xStreamUserData' 15 | 16 | 17 | -- location of main userdata folder 18 | -- (can overridden by custom folder defined in preferences) 19 | xStreamUserData.DEFAULT_ROOT = renoise.tool().bundle_path .. "/userdata/" 20 | xStreamUserData.USERDATA_ROOT = xStreamUserData.DEFAULT_ROOT 21 | 22 | -- userdata subfolders (fixed) 23 | xStreamUserData.FAVORITES_FILE_PATH = "favorites.xml" 24 | xStreamUserData.MODELS_FOLDER = "models/" 25 | xStreamUserData.PRESET_BANK_FOLDER = "presets/" 26 | 27 | --------------------------------------------------------------------------------------------------- 28 | -- [Static] Copy files from old to new folder 29 | -- @return boolean, true when files were copied 30 | -- @return string, error message when failed 31 | 32 | function xStreamUserData.migrate_to_folder(old_path,new_path) 33 | TRACE("xStreamUserData.migrate_to_folder(old_path,new_path)",old_path,new_path) 34 | 35 | local success,err = cFilesystem.copy_folder(old_path,new_path) 36 | if not success then 37 | return false,err 38 | end 39 | 40 | return true 41 | 42 | end 43 | -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/userdata/models/Demo-Read-Write.lua: -------------------------------------------------------------------------------- 1 | --[[=========================================================================== 2 | Demo - Read & Write.lua 3 | ===========================================================================]]-- 4 | 5 | return { 6 | arguments = { 7 | }, 8 | presets = { 9 | }, 10 | data = { 11 | }, 12 | events = { 13 | }, 14 | options = { 15 | color = 0x000000, 16 | }, 17 | callback = [[ 18 | ------------------------------------------------------------------------------- 19 | -- Demonstrates how xStream is both reading and writing pattern lines 20 | -- This model will create a C-4 note for every fourth line, and increase the 21 | -- volume as it iterates over those previously created notes 22 | ------------------------------------------------------------------------------- 23 | local do_output = xpos.line%4 == 1 24 | if do_output then 25 | local notecol = xline.note_columns[1] 26 | if (notecol.note_value == EMPTY_NOTE_VALUE) then 27 | notecol.note_value = 48 28 | notecol.volume_value = 0 29 | else 30 | local vol = notecol.volume_value 31 | notecol.volume_value = (vol+1)%127 32 | end 33 | end 34 | ]], 35 | } -------------------------------------------------------------------------------- /Tools/com.renoise.xStream.xrnx/userdata/models/Demo-Transpose.lua: -------------------------------------------------------------------------------- 1 | --[[=========================================================================== 2 | Transpose.lua 3 | ===========================================================================]]-- 4 | 5 | return { 6 | arguments = { 7 | }, 8 | presets = { 9 | }, 10 | data = { 11 | }, 12 | events = { 13 | }, 14 | options = { 15 | color = 0x505552, 16 | }, 17 | callback = [[ 18 | ------------------------------------------------------------------------------- 19 | -- Apply transpose to notes 20 | -- Demonstrates how pattern data is not only written, but also read: 21 | -- the model will continue transposing, until all note are at their lowest 22 | -- possible value (C-0). Leaves note-OFF and empty notes intact. 23 | ------------------------------------------------------------------------------- 24 | for k = 1,rns.tracks[track_index].visible_note_columns do 25 | if (xline.note_columns[k].note_value < 120) then 26 | xline.note_columns[k].note_value = xline.note_columns[k].note_value - 1 27 | end 28 | end 29 | ]], 30 | } -------------------------------------------------------------------------------- /Tools/exclude.list: -------------------------------------------------------------------------------- 1 | *.svn* 2 | *.DS_Store* 3 | *.git* 4 | exclude.list -------------------------------------------------------------------------------- /Tools/howto-package.txt: -------------------------------------------------------------------------------- 1 | $ cd 2 | $ zip -vr .xrnx * -x@../exclude.list 3 | $ mv .xrnx ~/Desktop/ 4 | -------------------------------------------------------------------------------- /Xtra/ToolScanner/README.txt: -------------------------------------------------------------------------------- 1 | 2 | A script that runs a simple sanity on a XRNX tool. It's meant to help a human 3 | admin and is by no means exhaustive. 4 | 5 | # Example usage: 6 | 7 | require('scanner'); 8 | $result = scan('/path/to/com.renoise.Duplex.xrnx'); 9 | if ($result !== true) { 10 | echo "Warnings Found: " . count($result) . "\n"; 11 | print_r($result); 12 | } 13 | 14 | # Can also be invoked with: 15 | 16 | $ php run.php /path/to/file -------------------------------------------------------------------------------- /Xtra/ToolScanner/run.php: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------