Giter VIP home page Giter VIP logo

grnltr's Introduction

grnltr

Author

Jared ANDERSON

20230220

Description

grnltr - a Granulator

Initial build for the Daisy Seed platform running on the pod.
Now supports kxmx_bluemchen as a build target.

TLDR: Grab a .bin from the Releases page and either follow the dfu instructions there or use the Daisy Web Programmer to transfer the binary to your pod/bluemchen.

Clone this under the DaisyExamples/pod directory and run make to build.
N.B. The binaries in the Release are built against the fix/uart-rx-dma-mode libDaisy branch.
You should also init the kxmx_bluemchen submodule if you wish to target the bluemchen.

Default make will build for the pod, to build for bluemchen, initialize and update the kxmx_bluemchen submodule then make with BUILD_TARGET=bluemchen:

$ git submodule init 
$ git submodule update 
$ make BUILD_TARGET=bluemchen
$ make BUILD_TARGET=bluemchen program-dfu

Up to 64 Banks of 16 WAV files (total sample size per bank must be < 64MB) from an SDMMC card can be read then be granulated.
Banks should be in separate directories under the /grnltr directory of the SDMMC card.
Waves must be in mono s16 format. I use sox to do conversion - something like:

# convert to 16bit PCM 1 channel 48k wave
sox <in.wav> -r 48000 -c 1 -b 16 -e s <out.wav>

Now supports a simple grnltr.cfg text file in the bank directory, which allows passing BPM, loop and reverse information to grnltr. An example looks like this, with one entry per line:

#file,bpm,loop,rev
01.wav,97.50,True,False
02.wav,100.00,True,False
...
16.wav,113.00,True,False

The grnltr.cfg can be edited by hand or grnltr_gui can be used to help automate its creation.

There is now also a small record buffer for "live" pass through granulization.
Once engaged, the buffer will fill once before grain processing starts.
Some parameters are disabled in this mode.

Parameters are paged and the current page is indicated by the colour of LED1. Turn the encoder to change pages.
Pressing the encoder will cycle the current sample. This can also be done by sending MIDI NoteOn - From Note 60 (C3)
MIDI parameters are accepted no matter what page is currently active.
Knobs and MIDI CC messages are in "catch" mode.
For Toggle parameters, send any CC value to toggle.

LED Colour Page Knob1 Knob2 Button1 Button2
RED Pitch/Time Grain Pitch (-2 8va to +2 8va)
CC3 and Pitch Bend
Scan Rate*
CC1
Cycle env type Reset Grain Pitch and Scan Rate
ORANGE Grain Duration/Density Grain Duration (10 to 200mS)
CC9
Grain Density (2 to 200 per second)
CC14
Grain Reverse
CC25
Scan Reverse*
CC26
YELLOW Grain Scatter Scatter Distance
CC20
N/A Toggle Scatter
CC15
Toggle Freeze
CC27
GREEN Randomize Pitch Distance
CC22
N/A Toggle Random Pitch
CC21
Toggle Random Density
CC29
BLUE WAV Select Sample Start*
CC12 Coarse, CC44 Fine
Sample End*
CC13 Coarse, CC45 Fine
Live Rec Mode
CC31
Play Rec Buffer
CC32
PURPLE Decimate/Record Bit Crush
CC23
Downsample
CC24
N/A N/A
VIOLET Pan Pan
CC33
Random Pan Distance
CC34
Toggle Random Pan
CC35
N/A
ROSE Delay 1 Delay Mix
CC38
Delay Time
CC39
Toggle MIDI gate*
CC37
Toggle MIDI note retrig*
CC36
LGREEN Delay 2 Delay Feedback
CC40
Delay Stereo Cross
CC41
Toggle MIDI note
CC42
Toggle Wave Loop*
CC28

Parameters marked with a * are disabled in live record mode.

On the bluemchen the two knobs work as for the pod.
To emulate the buttons, long press the encoder to access parameter select mode.
Select a parameter with the encoder, short press to activate it.
Long press again to exit parameter select mode.

To enter the setup menu, do an extra long press on the encoder.
From the setup menu the MIDI channel can be selected, or a new bank of samples can be loaded by clicking on browse and then picking the desired bank.

On the pod, the setup menu is accessed via a long press - LED1 will turn CYAN. Button1 increments the MIDI channel, button two will cycle through the available sample banks.

A demo and feature walkthrough of the v0.7 version available, click here:
grnltr_demo

TODO

Add recording capability: this is somewhat addressed in a passthrough mode. Recording a set number of bars and then writing to SD is not yet implemented.
Add MIDI control
Add Directory Browsing - Need a screen - target kxmx_bluemchen
Provide a Demo

grnltr's People

Contributors

jazamatronic avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.