zealtv / bop Goto Github PK
View Code? Open in Web Editor NEWFun and friendly modules for Pure Data Vanilla. bop ๐ค is suited to embedded, distributed, and miscellaneous digital musical applications.
Fun and friendly modules for Pure Data Vanilla. bop ๐ค is suited to embedded, distributed, and miscellaneous digital musical applications.
Module parameters should respond to both
parameter-name $1
as well as
bop.module-name parameter-name $1
This way messages can be differentiated between modules while still being passed through a chain
targetParam sine 1 // hz sine defaulting between 0.25 to 0.75
targetParam sine 5 1 // 5hz sine from 0. to 1.
targetParam sine 0.1 0.2 0.4 // 0.1hz sine from 0.2 to 0.4
additional arguments ignored
Param modes:
Sine
Random
something like https://github.com/zealtv/elevon but simplified or generalised.
attenuates and disables a subpatch according to one or more inputs and a function.
Application as:
Friendly with the clone object and multichannel cables.
fade-in and fade-out should be attack and release.
when not in loop mode, release should trigger a fade that is the minimum of the (fade-out-timesampleDuration) and 1-currentPositionsampleDuration.
This would act as a release, and automatically shorten the release time to meet the end of the sample.
Not an issue when creating the module, but when loading previous state these errors are thrown:
$2: argument number out of range
bad arguments for message 'label' to object 'cnv'
likely due to loadbang timing. module still works fine. Low priority.
when an intermal with fewer voices than the previous intermal is entered, the higher voices hang. Need to count voices and flush unused ones.
This argument works...
delay-level 0.1 0.01 0.1 2000 0.5 3000;
This does not ( delay level slowly approaches 0.1 initially)
delay-level 0.1 0.01 0.1 2000 0.5 3000;
bop.intermal, and later modules (frets) are capable of outputting unison voices.
Consider implementing a 3 element list to include voice id.
modules can differentiate between 2 and 3 element midi messages, employing poly where necessary.
this would allow for setting tempo from bop.seq itself. As well opening up other recursive sequencing options
use plain language:
attack
decay
sustain
release
|e4
|e#4
|a0
|b1
|e1 127
becomes:
40 127
pipe is best best prefix?
Maybe just as a utility....?
consider adding a change and a bang for unchanging values
notes are flushed when toggled off or new semistep or fret is set.
1b = 1 bar
2b = 2 bars
b2 = 1/2 bar
b4 = 1/4 bar
A store of currently held MIDI notes should be kept and noteslider should sweep across them.
A MIDI toggle button could activate this. This would work great with bop.intermal
Similar to bop.intermal but using a strings and frets model:
root 42 //set pitch of lowest string
tune 0.555 //four strings tuned in fourths
fret 0.220 // Em chord
Requires unison MIDI implementation to handle unison voices #12 (comment)
Seems to be caused via [r $x-get-$x-raw]
example sequences in ./seq
Update from disk:
[b] update from file
|
[read seq/example.bopseq(
Should open the door to live coding
Scripts should have a header section that is only run once, above an indicator that acts as the loop point.
eg
parameter 0.5;
level 1;
===;
--- stuff happens;
64 127;
- 1000;
[X] vca
[X] envelope
[X] adsr
๐ something like this ?
A bitplucking module should be created to compliment bop.intermal.
Perhaps rename bop.pluck~.
bop.noteslider = bop.strum
bop.bitpluck = bop.pluck
bop.pluck~ becomes bop.hit / strike / keys or something... ?
bop.diskplayer
bop.soundplayer
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.