new welcome email
This commit is contained in:
parent
1e00b9b44e
commit
6f39421c74
|
|
@ -7,9 +7,11 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
<p>We're delighted to welcome you to the JamKazam community of musicians. Following are
|
<p>
|
||||||
resources you can use to get the most out of JamKazam. We recommend you keep this email in
|
We're delighted to welcome you to the JamKazam community of musicians.
|
||||||
your inbox so you can refer back to the links if needed.
|
Following are resources you can use to get the most out of JamKazam.
|
||||||
|
We recommend you keep this email in your inbox so you can refer back to these instructions and links if needed.
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<% if @reset_url %>
|
<% if @reset_url %>
|
||||||
|
|
@ -26,51 +28,59 @@
|
||||||
<br>
|
<br>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<p><b style="color: white;">For Playing Music Together Live & In Sync From Different Locations</b><br/>
|
<p><b style="color: white;">Playing Music Together Live & In Sync Over the Internet</b><br/>
|
||||||
JamKazam's Mac and Windows desktop apps let musicians play together live and in sync with
|
|
||||||
high-quality audio from different locations over the Internet, with an amazing feature set for
|
JamKazam’s Mac and Windows desktop apps let musicians play together live and in sync with high-quality audio from different locations over the Internet, with an amazing feature set for mixing, recording, broadcasting, using backing tracks, and more. Great for band rehearsals, co-writing music, or just hopping into open jams with other musicians for fun. Getting your gear set up properly is critical to having a great experience on JamKazam, so we highly recommend you invest some time to use our knowledge base articles to guide you as follows:
|
||||||
mixing, recording, broadcasting, using backing tracks, and more. Great for band rehearsals, co-
|
</p>
|
||||||
writing music, or just hopping into open jams with other musicians for fun. We recommend
|
<ul>
|
||||||
reading the <a href="https://jamkazam.freshdesk.com/support/solutions/folders/66000108417" style="color:#fc0">Getting Started</a>
|
<li>
|
||||||
help articles to get oriented. Then really focus on the <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122533" style="color:#fc0">What Gear Do
|
Begin by reviewing our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073843" style="color:#fc0">Getting Started</a> articles.
|
||||||
I Need</a> and <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122534" style="color:#fc0">How Do I Set Up My Gear</a> help articles to guide your activities to get up and running
|
This covers the basics of how things work and provides specific gear recommendations that deliver the best price/performance in our testing.
|
||||||
successfully in JamKazam sessions.
|
You should use an audio interface rather than relying on the built-in mic and headphone jack on your computer, and you need to connect your computer to your home router using an Ethernet cable rather than using WiFi.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
When you have the gear you need, review our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073844" style="color:#fc0">Setup Instructions</a> articles.
|
||||||
|
The focus here is carefully following the step-by-step instructions we provide to use our setup wizard to configure your audio interface to work well with the JamKazam application.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Once you’ve done the two things above, you’re through the hard part, and ready to have fun!
|
||||||
|
Check out our <a href="https://jamkazam.freshdesk.com/support/solutions/66000073845" style="color:#fc0">Playing In Sessions</a> articles to learn how to connect with others, how to create and join sessions,
|
||||||
|
and how to use session features like mixing, recording, backing tracks, and broadcasting.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
• As a new user, you get gold level subscription plan features for your first 30 days after signing up for your account,
|
||||||
|
so that you can get the full JamKazam experience. After that, you can choose the free plan or support our continued
|
||||||
|
development of the JamKazam platform by selecting a <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000122535" style="color:#fc0">premium subscription plan</a>. And if you run into any trouble while
|
||||||
|
getting set up and playing, you can get help from our support team here: <a href="https://www.jamkazam.com/help_desk" style="color:#fc0">https://www.jamkazam.com/help_desk</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p><b style="color: white;">Music Education</b><br/>
|
||||||
|
JamKazam is being used heavily for music education – by universities, K-12 schools, other commercial and community music schools, and individual freelance instructors.
|
||||||
|
You can <a href="https://jamkazam.com/music-education/" style="color:#fc0">visit the education section</a> of our website to learn more about JamKazam for music education. Educational organizations must be licensed to use JamKazam for educational purposes.</p>
|
||||||
|
|
||||||
|
<p><b style="color: white;">Learning & Playing Along With Your Favorite Songs</b><br/>
|
||||||
|
In addition to playing with other musicians online, JamKazam also provides a fantastic way to play along with your
|
||||||
|
favorite songs, called JamTracks. JamTracks are complete multi-track professional recordings, with fully isolated tracks
|
||||||
|
for each part of the music. Mute any part. Slow down playback for practice. Change pitch/key up or down.
|
||||||
|
Record yourself playing along with the rest of “the band” in audio or video, and more. <a href="https://www.jamkazam.com/client#/jamtrack" style="color:#fc0">Get your first JamTrack free</a> to try one out!
|
||||||
|
After that they are just $1.99/$2.99 each. You can use JamTracks in your browser, in our Mac or Windows desktop app, or in our iOS app.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p><b style="color: white;">Live Music Broadcasts</b><br/>
|
||||||
<p><b style="color: white;">For Music Education</b><br/>
|
JamKazam is also being increasingly used to live broadcast JamKazam session performances – for free just for fun, to busk for tips, and for premium ticketed concert events.
|
||||||
JamKazam is being used heavily for music education – by universities, K-12 schools, other
|
Check out a help video on how to <a href="https://jamkazam.freshdesk.com/support/solutions/articles/66000124875" style="color:#fc0">live broadcast session performances</a> for fun,
|
||||||
commercial/community music schools, and individual freelance instructors. Educational
|
and if your band wants to use JamKazam to broadcast premium ticketed concert events using JamKazam,
|
||||||
organizations must be licensed to use JamKazam for educational purposes. Please contact us at <a href="mailto:education@jamkazam.com" style="color:#fc0">education@jamkazam.com</a> for more info.</p>
|
<a href="https://jamkazam.com/premium-ticketed-concert-broadcasts/" style="color:#fc0">visit the premium concert section</a> of our website to connect with us about this.
|
||||||
|
Premium ticketed concert broadcasts require licensing from JamKazam.
|
||||||
<p><b style="color: white;">For Live Music Broadcasts</b><br/>
|
|
||||||
JamKazam is also being increasingly used to live broadcast JamKazam session performances –
|
|
||||||
for free/fun, to busk for tips, and for premium ticketed concert events. Premium
|
|
||||||
ticketed concert broadcasts require licensing from JamKazam. Please contact us at <a href="mailto:concerts@jamkazam.com" style="color:#fc0">concerts@jamkazam.com</a> for more info.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><b style="color: white;">For Learning & Playing Along With Your Favorite Songs</b><br/>
|
|
||||||
JamTracks by JamKazam are the best way to play along with your favorite songs. JamTracks are
|
|
||||||
complete multi-track professional recordings, with fully isolated tracks for each part of the
|
|
||||||
music. Mute any part. Slow down playback for practice. Change pitch/key up or down. Record
|
|
||||||
yourself playing along with the rest of the band in audio or video, and more. Get your first
|
|
||||||
JamTrack free to try one out! After that they are just $1.99/$2.99 each. You can use JamTracks
|
|
||||||
in your browser, in our free Mac or Windows desktop app, or in our free iOS app.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><b style="color: white;">And More...</b><br/>
|
|
||||||
You can also connect and network with other musicians. If you run into trouble and need help,
|
|
||||||
you can refer to our <a href="https://jamkazam.freshdesk.com/support/solutions" style="color:#fc0">knowledge base of help articles</a> or visit our
|
|
||||||
<a href="https://forum.jamkazam.com/showthread.php?tid=69" style="color:#fc0">helpful forums</a> to post
|
|
||||||
questions that have not already been answered. You can also email us
|
|
||||||
at <a href="mailto:support@jamkazam.com" style="color:#fc0">support@jamkazam.com</a>, but we have limited bandwidth currently to answer 1:1 questions
|
|
||||||
from our users.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<br/>
|
Whew! That was a lot to cover, but JamKazam is a fantastic musical playground, and we wanted to make sure you know how
|
||||||
<br/>
|
to get the most out of everything you can do on this platform.
|
||||||
Again, welcome to JamKazam, and we hope you have a great time here!
|
Again, welcome to JamKazam, and we hope you have a great time here with us!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Best Regards,<br/>
|
<p>Best Regards,<br/>
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,8 @@ SQL
|
||||||
def cleanup_dangling
|
def cleanup_dangling
|
||||||
|
|
||||||
ConnectionManager.active_record_transaction do |connection_manager, conn|
|
ConnectionManager.active_record_transaction do |connection_manager, conn|
|
||||||
sql = "update connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at::date < (current_date - 2)))"
|
# select * from connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at < (NOW() - '12 hours'::interval)))
|
||||||
|
sql = "update connections set music_session_id = null where id in (select id from connections where music_session_id in (select id from active_music_sessions where updated_at < (NOW() - '12 hours'::interval)))"
|
||||||
conn.exec(sql) do |result|
|
conn.exec(sql) do |result|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -386,12 +387,13 @@ SQL
|
||||||
if kick_extras
|
if kick_extras
|
||||||
num_participants = active_music_session.users.count
|
num_participants = active_music_session.users.count
|
||||||
|
|
||||||
puts("kick extras = num_participants #{num_participants}")
|
#puts("kick extras = num_participants #{num_participants}")
|
||||||
active_music_session.users.each do |user|
|
active_music_session.users.each do |user|
|
||||||
subscription_rules = user.subscription_rules(false)
|
subscription_rules = user.subscription_rules(false)
|
||||||
puts "checking max players for #{user.email} #{subscription_rules[:max_players]}"
|
#puts "checking max players for #{user.email} #{subscription_rules[:max_players]}"
|
||||||
if subscription_rules[:max_players] && subscription_rules[:max_players] < num_participants
|
if subscription_rules[:max_players] && subscription_rules[:max_players] < num_participants
|
||||||
puts "kicking user #{user.email}"
|
#puts "kicking user #{user.email}"
|
||||||
|
# XXX TODO? Should we do this?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,6 @@ module JamRuby
|
||||||
|
|
||||||
num_participants = music_session.users.count
|
num_participants = music_session.users.count
|
||||||
|
|
||||||
puts "NUM PARTICIPANTS BEFORE JOIN #{num_participants}"
|
|
||||||
subscription_rules = self.user.subscription_rules(dynamic_definitions = false)
|
subscription_rules = self.user.subscription_rules(dynamic_definitions = false)
|
||||||
|
|
||||||
max_players = subscription_rules[:max_players]
|
max_players = subscription_rules[:max_players]
|
||||||
|
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe MaxMindRelease do
|
|
||||||
|
|
||||||
include UsesTempFiles
|
|
||||||
|
|
||||||
GEOISP_124 = 'geoisp_124.csv'
|
|
||||||
|
|
||||||
in_directory_with_file(GEOISP_124)
|
|
||||||
|
|
||||||
before(:all) do
|
|
||||||
@original_storage = MaxMindReleaseUploader.storage = :fog
|
|
||||||
end
|
|
||||||
|
|
||||||
after(:all) do
|
|
||||||
MaxMindReleaseUploader.storage = @original_storage
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:zipfile) {fake_geo_124_zip(File.new(GEOISP_124))}
|
|
||||||
let(:release) {FactoryGirl.create(:max_mind_release)}
|
|
||||||
|
|
||||||
before(:each) do
|
|
||||||
content_for_file('abc')
|
|
||||||
|
|
||||||
Dir.mkdir(APP_CONFIG.max_mind_working_dir) unless Dir.exists?(APP_CONFIG.max_mind_working_dir)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "unzip" do
|
|
||||||
result = release.unzip(APP_CONFIG.max_mind_working_dir, zipfile.path)
|
|
||||||
result.include?('GeoIPISP.csv').should be_true
|
|
||||||
output = result['GeoIPISP.csv']
|
|
||||||
File.exists?(output).should be_true
|
|
||||||
IO.read(output).should == 'abc'
|
|
||||||
end
|
|
||||||
|
|
||||||
it "downloads", aws: true do
|
|
||||||
uploader = MaxMindReleaseUploader.new(release, :geo_ip_124_url)
|
|
||||||
zipfile.open
|
|
||||||
uploader.store!(zipfile) # uploads the file to s3
|
|
||||||
release.save!
|
|
||||||
release[:geo_ip_124_url].should == File.join(release.store_dir, 'geo_ip_124_url.zip')
|
|
||||||
release[:geo_ip_124_md5].should == Digest::MD5.file(zipfile).hexdigest
|
|
||||||
release[:geo_ip_124_size].should == zipfile.size
|
|
||||||
|
|
||||||
downloaded_filename = release.download(release.dated_working_dir, :geo_ip_124_url, release[:geo_ip_124_md5])
|
|
||||||
|
|
||||||
Digest::MD5.file(downloaded_filename ).hexdigest.should == Digest::MD5.file(zipfile).hexdigest
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "import" do
|
|
||||||
it "succeeds" do
|
|
||||||
release.touch
|
|
||||||
dataset = dataset_to_tmp_files
|
|
||||||
release.import_to_database(dataset[:geo_ip_124_files], dataset[:geo_ip_134_files], dataset[:iso3166], dataset[:region_codes])
|
|
||||||
release.imported.should be_true
|
|
||||||
release.imported_at.should_not be_nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
@ -16,8 +16,6 @@ describe UserMailer do
|
||||||
UserMailer.deliveries.clear
|
UserMailer.deliveries.clear
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
describe "should send confirm email" do
|
describe "should send confirm email" do
|
||||||
|
|
||||||
let (:mail) { UserMailer.deliveries[0] }
|
let (:mail) { UserMailer.deliveries[0] }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue