OPEN AND TRANSPARENT SELF-PAYING ROYALTY SYSTEM

The SOUNDAC database is open, transparent and constantly in-sync. There are no gatekeepers. SOUNDAC is not proprietary. It is an ownerless, automated, globally distributed, Peer-to-Peer network. Businesses worldwide, from streaming platforms to music retail websites, will know exactly which copyright holders to pay (in real time!) by using the open data contained within SOUNDAC. Solving what we call the “Who to pay?” issue currently plaguing the music world.

Adding content to SOUNDAC through the RMP

Copyright holders add music to SOUNDAC by going to the Rights Management Portal. During this process, they specify what is to be done with income – how the royalties should be split amongst all participants.

Music is picked up by a Streaming Platform

Streaming platforms (such as PeerTracks) will see the new song entry appear on the distributed database and decide whether or not to add it to their catalog – allowing their users to stream it.

Paying Royalties

SOUNDAC has a royalty pool from which it pays out all copyright holders. It distributes the funds based on what all users, on every streaming platform (connected to the SOUNDAC ecosystem) have been listening too. The funds go towards every song the users have been streaming. Each song entry contains instructions on who should receive which percentage of the income. For example: If Alice listens to Song ABC on PeerTracks. PeerTracks reports this stream to SOUNDAC, which takes care of splitting up the funds to each of Song ABC’s rights holders.

Whoops! There was an error.
ErrorException (E_WARNING)
file_put_contents(/home/soundacxsd/public_html/domain/storage/framework/sessions/099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH): failed to open stream: No space left on device ErrorException thrown with message "file_put_contents(/home/soundacxsd/public_html/domain/storage/framework/sessions/099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH): failed to open stream: No space left on device" Stacktrace: #7 ErrorException in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #6 file_put_contents in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #5 Illuminate\Filesystem\Filesystem:put in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:83 #4 Illuminate\Session\FileSessionHandler:write in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Session/Store.php:128 #3 Illuminate\Session\Store:save in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /home/soundacxsd/public_html/domain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /home/soundacxsd/public_html/domain/public/index.php:61
7
ErrorException
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
6
file_put_contents
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
5
Illuminate
\
Filesystem
\
Filesystem
put
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
83
4
Illuminate
\
Session
\
FileSessionHandler
write
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
128
3
Illuminate
\
Session
\
Store
save
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
87
2
Illuminate
\
Session
\
Middleware
\
StartSession
terminate
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
218
1
Illuminate
\
Foundation
\
Http
\
Kernel
terminateMiddleware
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
189
0
Illuminate
\
Foundation
\
Http
\
Kernel
terminate
/
public
/
index.php
61
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "file_put_contents(/home/soundacxsd/public_html/domain/storage/framework/sessions/099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH): failed to open stream: No space left on device"
    
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "/home/soundacxsd/public_html/domain/storage/framework/sessions/099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH"
    
  2. "a:3:{s:6:"_token";s:40:"hQkMzVWcGyV41r3d7fFSs08pp9I7COokEnkVte3i";s:9:"_previous";a:1:{s:3:"url";s:31:"https://soundac.io/how-it-works";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 2
    
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        if ($this->files->exists($path = $this->path.'/'.$sessionId)) {
            if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {
                return $this->files->get($path, true);
            }
        }
 
        return '';
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        $this->files->put($this->path.'/'.$sessionId, $data, true);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        $this->files->delete($this->path.'/'.$sessionId);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        $files = Finder::create()
Arguments
  1. "/home/soundacxsd/public_html/domain/storage/framework/sessions/099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH"
    
  2. "a:3:{s:6:"_token";s:40:"hQkMzVWcGyV41r3d7fFSs08pp9I7COokEnkVte3i";s:9:"_previous";a:1:{s:3:"url";s:31:"https://soundac.io/how-it-works";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. true
    
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "099u57abT4xAPh8UMAfUUXCKR5gLXflZL9lDx5wH"
    
  2. "a:3:{s:6:"_token";s:40:"hQkMzVWcGyV41r3d7fFSs08pp9I7COokEnkVte3i";s:9:"_previous";a:1:{s:3:"url";s:31:"https://soundac.io/how-it-works";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            list($name) = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/how-it-works/"
      #requestUri: "/how-it-works/"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
soundacxsd
/
public_html
/
domain
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/how-it-works/"
      #requestUri: "/how-it-works/"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
soundacxsd
/
public_html
/
domain
/
public
/
index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/how-it-works/"
      #requestUri: "/how-it-works/"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
PATH
"/usr/local/bin:/usr/bin:/bin"
TZ
"UTC"
REDIRECT_HANDLER
"application/x-httpd-ea-php70"
REDIRECT_STATUS
"200"
UNIQUE_ID
"W8sdLFLGpi4p4XwHCp-uYgAAAAc"
SCRIPT_URL
"/how-it-works/"
SCRIPT_URI
"https://soundac.io/how-it-works/"
HTTPS
"on"
SSL_TLS_SNI
"soundac.io"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_IF_MODIFIED_SINCE
"Sat, 18 Aug 2018 13:51:33 GMT"
HTTP_HOST
"soundac.io"
HTTP_CONNECTION
"Keep-Alive"
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_X_HTTPS
"1"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"soundac.io"
SERVER_ADDR
"10.128.0.4"
SERVER_PORT
"443"
REMOTE_ADDR
"54.198.212.30"
DOCUMENT_ROOT
"/home/soundacxsd/public_html/domain/public"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
"/cgi-sys"
CONTEXT_DOCUMENT_ROOT
"/usr/local/cpanel/cgi-sys/"
SERVER_ADMIN
"webmaster@soundac.io"
SCRIPT_FILENAME
"/home/soundacxsd/public_html/domain/public/index.php"
REMOTE_PORT
"38452"
REDIRECT_URL
"/index.php"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/how-it-works/"
SCRIPT_NAME
"/index.php"
ORIG_SCRIPT_FILENAME
"/usr/local/cpanel/cgi-sys/ea-php70"
ORIG_PATH_INFO
"/index.php"
ORIG_PATH_TRANSLATED
"/home/soundacxsd/public_html/domain/public/index.php"
ORIG_SCRIPT_NAME
"/cgi-sys/ea-php70"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1540037932.5585
REQUEST_TIME
1540037932
argv
[]
argc
0
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:f205P8x0x5fd5UQurhomBTNq35LptgkmJRp0j9Ht/xY=base64:Z9PVxlL1eYb8YZPMVoqPbXXYZserzGHuwQGWPV9ReDE="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"muse"
DB_USERNAME
"homestead"
DB_PASSWORD
"secret"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"mailgun"
MAIL_HOST
"smtp.mailgun.org"
MAIL_PORT
"587"
MAIL_USERNAME
"postmaster@support.museblockchain.com"
MAIL_PASSWORD
"hd@~70QZ!?aC+NUgo-C+NUgo-"
MAIL_ENCRYPTION
"TLS"
GLOBAL_MAIL_FROM_ADDRESS
"no_reply@support.museblockchain.com"
GLOBAL_MAIL_FROM_NAME
"MUSE Support"
MAIL_FROM_ADDRESS
"postmaster@sandbox5874a7c543aa49e285ef65b99cdfa218.mailgun.org"
MAIL_FROM_NAME
"mailgun-tester"
MAILGUN_DOMAIN
"support.museblockchain.com"
MAILGUN_SECRET
"key-b242720b1823631be03f15518a10541a"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
Key Value
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:f205P8x0x5fd5UQurhomBTNq35LptgkmJRp0j9Ht/xY=base64:Z9PVxlL1eYb8YZPMVoqPbXXYZserzGHuwQGWPV9ReDE="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"muse"
DB_USERNAME
"homestead"
DB_PASSWORD
"secret"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"mailgun"
MAIL_HOST
"smtp.mailgun.org"
MAIL_PORT
"587"
MAIL_USERNAME
"postmaster@support.museblockchain.com"
MAIL_PASSWORD
"hd@~70QZ!?aC+NUgo-C+NUgo-"
MAIL_ENCRYPTION
"TLS"
GLOBAL_MAIL_FROM_ADDRESS
"no_reply@support.museblockchain.com"
GLOBAL_MAIL_FROM_NAME
"MUSE Support"
MAIL_FROM_ADDRESS
"postmaster@sandbox5874a7c543aa49e285ef65b99cdfa218.mailgun.org"
MAIL_FROM_NAME
"mailgun-tester"
MAILGUN_DOMAIN
"support.museblockchain.com"
MAILGUN_SECRET
"key-b242720b1823631be03f15518a10541a"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
0. Whoops\Handler\PrettyPageHandler