Copyright law needs neutering. I want to pair each article in renaissancemusings.com with an .mp3, to give them emotional context, but I’m sure it’s not legal, and if I jumped through the hoops, it would be financially senseless. It would be cool if I could put an ad or get commission from the artist to defray the cost and drive up sales, but there’s currently no way for data holders to leverage their hard drives and their good tastes to pass along music and profit from it.
Maybe that’s more of a distributer thing than a copyright thing, but the two are, part and parcel, the same, nowadays.
I would like to see digital distributers and brick-and-mortar retailers broken up so that users can promote and sell and distribute music online for profit.
I’m going to ask around to see if I can get this idea developed.
Just to clarify, I’m thinking of a mix between soundcloud (music upload and sharing) and iTunes (pay for tracks), where indie artists can get paid for uploading stored tracks and sharing tracks and playlists that can be embedded on other websites.
Pretty big project.
Users would pay bitcoin or paypal money to buy a track, then they would be able to download it and store it on their hardrives and put it up on their own website to sell.
I want to work on an animation of ice crystals spreading for it,
and also have a system for rating and reviewing tracks.
Need to also write up a contract for the user and the artist, so that users can be rewarded for quantity, quality, and upload speed when selling.
1/3 goes to the artist, 1/3 goes to the distributer/promoter, 1/3 goes to us
And there’s nothing saying the artist can’t sign up and get an account to distribute it and promote it themselves. Edit: Just made up. Artist should get more, distibuter should get less.
Image mockup. Could incorporate black in the background and a darker color blue if it looks too pale.
Done prototyping included functions.
Done quantifying variables and functions passed to functions.
Possible software that needs to be licensed or patented (Raw, incomplete skeleton, cica 11/2013):
Send/Receive Messages (POP/IMAP/Text/Email/Messaging)
File Details Database (Music Track Information/Video Information/DRM)
Banking Transactions (Bank Authorizations/Bank Transfers/Visa/Mastercard/Discover/Paypal/Bitcoin)
Array UserIDs;
Array UserInfo;
String ArtistName;
String TrackName;
.mpeg AlbumCover;
Integer Price;
String WebsiteID;
Array WalletExpenses;
Integer MoneyGoingOut;
Array WalletFunds;
Integer MoneyGoingIn;
Array PlayedTrackRatings;
Array PlayedTrackCounts;
Array PlayedTrackList;
Array PlayedTrackCounts;
Array UserTrackRating;
Array CloudTrackRating;
Graphic DisplayPurchasingInformation(SellerID)
{
Print “Seller: ” + String GetSellerID(Array of Integers UserID.Integer of Strings UserNameCell);
Print “Track Name: ” + String GetTrackName(Array of Integers UserID.Integer getting Array UserTracksCell);
Print “Artist Name: ” + String GetArtistName(Array of Integers UserID.Integer getting Array UserTracksCell. Integer String ArtistNameCell);
Print “Album Name: ” + String GetAlbumName(Array of Integers UserID.Integer getting Array UserTracks.Integer getting String AlbumName);
Print “Track Price: ” + Integer GetTrackPrice(Array of Integers UserID.Integer getting Array UserTracksCell.Integer TrackPrice);
DisplayEmbeddedTrack(UserIDs(n), ArtistName, TrackName, AlbumCover, Price, WebsiteID)
If
(
UserClicks()
{
return Boolean UserClicks;
}
)
Then
(
DisplayLoginPopup()
{
Boolean IsNewUser;
GetLoginType()
{
isNewUser = ****getuserinput***
}
if
(
IsNewUser
)
then
(
Array NewUserID;
GetNewUserID()
{
GetUserInfo()
{
GetSignedContract()
{
Boolean PayscaleAgreement;
Boolean DRMAgreement;
Boolean EULA;
GetPayscaleAgreement()
{
Print File PayscaleAgreement()
Return Boolean PayscaleAgreement;
}
GetDRMAgreement()
{
Print File DRMAgreement()
Return Boolean DRMAgreement;
}
GetEULA()
{
Print File EULA()
Return Boolean EULA;
}
}
If
(
PayscaleAgreement && DRMAgreement && EULA
)
Then
(
GetAccountName()
NewUserID.append(AccountName);
GetUserName()
NewUserID.append(UserName);
GetUserEmail();
NewUserID.append(UserEmail);
GetUserPassword()
NewUserID.append(UserPassword);
)
VerifyUserNotComputerPersona()
{
Print CAPTCHA();
NewUserID.append(CAPTCHA());
}
GetUserAddress()
NewUserID.append(UserAddress);
GetUserBankingInformation()
NewUserID.append(UserBankingInformation);
GetUserTaxID()
NewUserID.append(TaxID);
GetUserUserPicture()
{
File UserPicture()
NewUserID.append(UserPicture);
Return 0;
}
If
{
Array UserData[bool initializationCell] = 0;
{
Then
{
InitializeUserData()
{
NewUserID.append(Array PlayedTrackList);
NewUserID.append(Array PlayedTrackCounts);
NewUserID.append(Array PlayedTrackRatings);
NewUserID.append(Array WalletFunds);
NewUserID.append(Array WalletExpenses);
}
}
}
UserIDs.Append(NewUserID);
)
)
Else
(
LogInToUserAccount()
{
GetUserAccountName()
{
Return String AccountName;
}
GetUserAccountPassword
{
Return String AccountPassword;
}
LogIn(AccountName, AccountPassword)
{
DisplayUserAccount()
{
DisplayUserInfo(AccountName)
{
Print UserInfo(AccountName);
}
DisplayUserPicture(UserPicture)
{
Print UserPicture;
}
DisplayWalletIcon()
{
If(UserClicks())
Then
{
DisplayWalletContents()
{
Print Wallet;
Print BankingChoices()
{
GetBankFunds
{
WalletFunds = Transfer(Integer MoneyGoingIn)
}
GiveBankFunds
{
WalletFunds = Transfer(Integer MoneyGoingOut)
}
}
}
}
DisplayUserGenrePreferencesIcon()
{
}
DisplayUserContractsPageIcon()
{
}
DisplayUserTracklistIcon(UserTracks)
{
}
DisplayUserRecentlyViewedTracks(ViewedTrackList, CloudTrackRatings)
{
}
DisplayUserRecentlyPlayedTracks(Array PlayedTrackList, Array PlayedTrackCounts, Array UserTrackRating, Array CloudTrackRating)
{
}
DisplayUserBookmarkedTracks(Array BookmarkedTracks)
{
}
DisplayUploadTrackIcon(TrackFile, Ping)
{
}
}
DisplaySellerAccount()
{
DisplayPurchaseTrackIcon()
{
}
DisplaySellerRecentlyPlayedTrackList()
{
}
DisplayPlaycount(TrackID)
{
}
DisplaySellerTrackRatings(CloudTrackRating)
{
}
DisplaySendMessageIcon()
{
GetRecipientAccountName()
{
}
GetMessage()
{
}
SendMessage()
{
}
}
}
}
}
DisplayUserAccount()
{
}
DisplayPurchasingInformation(BuyerID, SellerID)
{
DisplayPurchasingInformation(SellerID)
{
Print “Seller: ” + GetSellerID(Array of Integers UserID.Integer of Strings UserNameCell);
Print “Track Name: ” + GetTrackName(Array of Integers UserID.Integer getting Array UserTracksCell);
Print “Artist Name: ” + GetArtistName(Array of Integers UserID.Integer getting Array UserTracksCell. Integer String ArtistNameCell);
Print “Album Name: ” + GetAlbumName(Array of Integers UserID.Integer getting Array UserTracks.Integer getting String AlbumName);
Print “Track Price: ” + GetTrackPrice(Array of Integers UserID.Integer getting Array UserTracksCell.Integer TrackPrice);
}
DisplayWalletFunds()
{
}
DisplayPurchaseHistoryIcon()
{
}
DisplaySalesHistoryIcon(SalesHistory)
{
}
CalculateDifference()
{
}
DisplayPlaybackSettings()
{
Play()
Pause()
Stop/Reset()
Repeat()
Shuffle()
TimeSlider()
VolumeSlider()
}
DisplayPlaycount(TrackID, Playcount)
DisplayRating(TrackID, UserReviews)
LoadReviews(TrackID, UserID)
ReviewTrack(UserID, GetUserReview)
Report Track(TrackId, UserComplaint)
ReportUser(BuyerID, SellerID, UserComplaint)
DisplayFullSellerTracklist(UserID, Tracklist)
DisplaySuggestedMusic(TrackID, UserTrackCompilation)
)
Audio syntax rules:
[LANGUAGE]
[HARDWARES FORMATS]
[HARDARES PROVIDERS]
[HARWARES INSTRUCTIONS]
[HARDWARES PURCHASING]
[HARDWARES PRICES]
[HARWARES SUPPORTS]
[HARWARE RETURNS]
[NETWORKS]
[SEED SOURCES]
[NUMBER OF SEED SOURCES]
[PEERS]
[NUMBER OF PEERS]
[CHANNELS]
[PUBLISHERS]
[LABELS]
[BAND ORGANIZATION GROUP NAMES]
[ARTISTS]
[CENSORSHIP RATING]
[ALBUMS]
[ALBUMS’ SONGS TITLES]
[ALBUMS’ TRACKS’ SEQUENCE NUMBERS]
[TRACKS’ TIMES’ LENGTHS]
[TRACKS’ STORAGE REQUIREMENTS]
[TRACKS’ FILETYPES]