Eru is a music layer to enable devs to create tools, and help melomaniacs and fans compose, remix and share music in an open and interoperable way.
- Sound
- Track
- Sample
- EruMetadataComponent is Component
- Name and authors
- SoundUriComponent is StringComponent
- URI of music binary (IPFS, etc)
- TrackConfigComponent
- entityId of the sound
- unordered array of positive integer values representing the number of miliseconds after the beginning of the track to play the Sound
- SampleTracksComponent is Uint256Component
- Track entity IDs that are part of the sample
- struct EruMetadata
- name: string
- authors: string[]
- setSoundEntitySystem(soundEntity, uri, eruMetadata)
- soundEntity.SoundUriComponent = uri
- entity.EruMetadataComponent = eruMetadata
- struct Tracks
- setSampleEntitySystem(soundEntity,
- setSampleEntity(sampleEntityId, tracks
- SetSoundForTrack(trackEntity, soundEntity)
- trackEntity.TrackSoundComponent = soundEntity
- SchedulePlayForTrack(trackEntity, msAfterStart)
- trackEntity.TrackTimingComponent.append(msAfterStart)
- AddTrackToSample(sampleEntity, trackEntity)
- sampleEntity.SampleTracksComponent.append(trackEntity)
- RemoveTrackFromSample(sampleEntity, trackEntity)
- sampleEntity.SampleTracksComponent.remove(trackEntity)
From the contracts folder run:
yarn mud deploy --deployerPrivateKey <PRIVATE KEY> --deployClient --netlifySlug <SLUG> --netlifyPersonalToken <PERSONAL TOKEN>
Run netlify functions:serve
from the client directory.