/arpocalypse_v667

The End of all Arpeggiators

Primary LanguageJavaScript

Put together in an adhoc way as a proof of concept for the idea

The idea being that music can be understood as arpeggiation

Some principles

Everything that seems automated is really just a default that can be modified down to the finest detail

eg. sequences can be generated but each note can be altered individually This process can be called ‘baking’

The same process that produces melody should be able to produce harmony

The same process that prduces rhythm shuold be able to produce melody

Highly collaborative ie realtime.

The event subsystem has to be managed very well.

Networking

As a web service

For multi-processing

LAN capable

Socket capable

For access to assets

user based save/load

As a colloborative center

Plugin architecture?

Keyboard.js

MIDI should start here

~/arpocalypse_v667/src/Keyboard/Keyboard.js

Spend time on this to make it look nice

Do a dial that can be used on the phone (and looks nice) ~/arpocalypse_v667/src/Keyboard/Keyboard.js

These should be abstracted to ‘Tracks’ or ‘Instruments’ (should they be different?) named defaults to CSS standard colours

Potentially, instruments may be wildly different from each other Instruments could be the network of chains and triggers and associations? ~/arpocalypse_v667/src/Keyboard/Keyboard.js

Upstream communications can only be achieved by passing handler functions down to child components.

I don’t know if this is a good thing or not, all communications should be directionless when implemented. If this were truly modular then everything should be node based.

~/arpocalypse_v667/src/Keyboard/Keyboard.js

Roles can communicate with one another through the parent ‘Keyboard’ widget.

It seems arbitrary for now that the keyboard should be higher than the role Any Hierarchy is presently accidental ~/arpocalypse_v667/src/Keyboard/Keyboard.js

What seems like a disadvantage in hierarchical organisation of components is the replication of functions up and down the chain

But this foreshadows all the subtle contexts for what that function has to do to all components involved so it seems inevitable to have compose functions for each type of component

~/arpocalypse_v667/src/Keyboard/Keyboard.js

Input interface should be abstracted, but the main keyboard listener seems so fundamnetal it seems it should be here…

~/arpocalypse_v667/src/Keyboard/Keyboard.js

The widget for keyboard range control seems to be arbitrariy put here

~/arpocalypse_v667/src/Keyboard/Keyboard.js

It seems manifest that only one track shuold be active at a time

~/arpocalypse_v667/src/Keyboard/Keyboard.js

it seems processor intensive tp to run mapButtons so often

~/arpocalypse_v667/src/Keyboard/Keyboard.js

downstream communication done via Provider/Consumer

There needs to be a way of accessing Providers in the class definition too

~/arpocalypse_v667/src/Keyboard/Keyboard.js

there must be a way to determine the amount of props that get passed downwards

~/arpocalypse_v667/src/Keyboard/Keyboard.js

Engine.js

master track manager is the only thing that belongs here

The synth will branch off and be associated with tracks Well anything can be associated with anything ideally. A query language will have to be attached to every component define these connections. ~/arpocalypse_v667/src/Engine/Engine.js

It would be prudent to start thinking in terms of seprating logic from graphics

~/arpocalypse_v667/src/Engine/Engine.js

lots of data arrives here for the whole session, almost constantly because I havent figured out how to make a Provider argument communicate with the rest of the class definition

~/arpocalypse_v667/src/Engine/Engine.js

As a stop gap, I’ll try getting PHP to accept a ‘file’ name to save stuff.

I still can’t decide if I should first instantiate the instruments first. The priority is to get this thing MUSICAL!!! which means I should really work on the SPAWNING

~/arpocalypse_v667/src/Engine/Engine.js

Note activity SPAWNING

This should no longer be called a transport

The basis of ARPOCALYPSE is to get away from the PLAY RECORD paradigm ~/arpocalypse_v667/src/Sequence/Transport.js

this timer is perplexing me. It’s a master timer.

~/arpocalypse_v667/src/Sequence/Transport.js

The present quality of ARPOCALYPSE is the persistance of this timer’s position regardless of abitrary pattern changes.

each component seems to be confused as to weather it wants to work with clips or with an actual sequence array

~/arpocalypse_v667/src/Sequence/Transport.js

spawning happens here

~/arpocalypse_v667/src/Sequence/Transport.js

the aim of the slider widget was to allow me to start halving a whole as the slider is decremented below 1

~/arpocalypse_v667/src/Sequence/Transport.js

playFreq should be the first role to role feature. ie a setting of 4 on blue can be associated with red such that blue track repeats after 4 cycles of red

~/arpocalypse_v667/src/Sequence/Transport.js

if I am to go ahead with realtime I might as well start working on quantisation

~/arpocalypse_v667/src/Sequence/Transport.js

this should be low hanging fruit. It seems related to sequence editing.

~/arpocalypse_v667/src/Sequence/Transport.js

these double booleans are clever, I don’t know how I thought of them

~/arpocalypse_v667/src/Sequence/Transport.js

url parameters will call from present banks.

~/arpocalypse_v667/src/Storage/index.js

Role.js

This fork is annoying

Compose.js

Transport.js

~/arpocalypse_v667/src/Role/Role.js

chained clips is the beginning of a song definition

Chaining has to be special ~/arpocalypse_v667/src/Role/Role.js

The original idea was to blaze out all the harmonic posibilities upon keypress

~/arpocalypse_v667/src/Keys/Keys.js

Is there any advantage to this hierarchy? :

<div className=”App”> <Engine> <Keyboard range={[24,95]} /> </Engine>

</div> Does the global clock even do anything important right now? The old redux version would send a clock signal to all listening components but this version just queues up intervals. There old version was an excercise in generator functions

Imperatives:

Me-lee

MIDI and synth recipes

Ron

Database and user authentication An increasing need to save things is a good sign that meaningful projects can be built.

It’s hard to tell what downstream components are calling function

~/arpocalypse_v667/src/Engine/Engine.js

this should not be called so often

~/arpocalypse_v667/src/Sequence/Compose.js

First and foremost the Arpocalypse is a tool for ME

~/org/org-heap.org

npm run build will command babel transpilers to make distributions

~/fcg/request/.babelrc