Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report CSC 388/588 (Type in fields) 2
Student Information
Integrity Policy: All university integrity and class syllabus policies have been followed. I have neither given, nor received, nor have I tolerated others use of unauthorized aid.
I understand and followed these policies: 
Copyright By Assignmentchef assignmentchef
Name: Date:
Submission Details
Final Changelist number:
Verified build: Yes No
Required Configurations: YouTube Link:
Self Grading Section:
Required Features: Basics
XAudio2 Voices
Attributes (volume, pan, pitch, etc.)
Loading Waves (initiated from game side)
Instancing playing the multiple instances of the same SndCall
Seamless transitions between voices using Voice Callbacks in Playlist Using Voice Buffers or Stitch Voices together
Priorities
Creating a priority table (6 entries)
Preemptively cancelling or calling SndCalls based on their priorities
Using time playing for cases where there are multiple calls with same priority Game User Callbacks
On Game Side  user supplied callback for StreamEnd() Callback for the game to trigger an event on playing end
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588
(Type in fields) File
File load callback when the file is loaded and ready on the Audio Thread
Audio Management Handles
Buffer (wave data)
Voice (management)
Other systems for management
Memory Leaking Verification No Resources Leaking
YouTube Process
 Record the YouTube demo
o Youneedtorecordinstereowithcommentary
 2 channel with both computer (desktop) and microphone recording o Suggestion:OBSscreencapture
 Record the desktop (enough to show your directory and the visual studio and output) o Showyourdirectoryinrecording
 Launch the visual studio (double click solution) o Showoffrelevantpartsofthecodewithcommentary o LaunchanddemotheMS2
 Play the demo and add your commentary in real-time o Watchyourvideo
 Verify that video clear and can you hear the commentary audio in stereo?
 Note: Weekly Sprints cannot be longer that 15:00 mins
o Ifyougooverdoitagain
o NEEDTOseecompilingandlightdiscussionofcodewithdemo
 Publish your YouTube recording
o Makesureitisaccessiblewithoutanyloginorpermissiontoplay
o Itcanbeprivatebutnotrestrictivetoplaybyanyonewiththelink
 Submit your code to perforce to the appropriate MS2 directory
o Verifyit
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Pdf form (this document)
 Submit this PDF to perforce o Fillinform
 Name, changlelist, etc
 YouTube Link
o Submitbacktoperforce
Submission Report Keenan
Verify Builds
 Check it out and Submit it back to perforce to the same location
 Follow the Piazza procedure on submission
o Verifyyoursubmissioncompilesandworksatthechangelistnumber.
 Verify that only MINIMUM files are submitted o NoGeneratedfiles
 *.pdb, *.suo, *.sdf, *.user, *.obj, *.exe, *.log, *.pdb, *.db, *.user
 Anything that is generated by the compiler should not be included o NoGenerateddirectories
 /Debug, /Release, /Log, /ipch, /.vs
 Typical files project files that are required
o *.sln,*.cpp,*.h
o *.vcxproj,*.vcxproj.filters,CleanMe.bat
Standard Rules
Submit multiple times to Perforce
 Submit your work as you go to perforce several times (at least 5) o Assoonasyougetsomethingworking,submittoperforce o Havereasonablecheck-incomments
 Points will be deducted if minimum is not reached
Write all programs in cross-platform C++
 Optimize for execution speed and robustness
 Working code doesnt mean full credit
Submission Report
 Fill out the submission Report o Noreport,nograde
Code and project needs to compile and run
 Make sure that your program compiles and runs
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete
Submission ReportSC 388/588
(Type in fields)
o Warninglevel4
o NOWarningsorERRORS
 Your code should be squeaky clean. o Codeneedstoworkas-is.
 No modifications to files or deleting files necessary to compile or run. o Allyourcodemustcompilefromperforcewithnomodifications.
 Otherwise its a 0, no exceptions
Project needs to run to completion
 If it crashes for any reason
o Itwillnotbegradedandyougeta0
No Containers
 NO STL allowed {Vector, Lists, Sets, etc}
o Noautomaticcontainersorarrays
o Youneedtodothistheoldfashionway-YOUEARNEDIT
Leave Project Settings
 Do NOT change the project or warning level
o Anychangingoflevelorsuppressionofwarningsisanintegrityissue
Simple C++
 No modern C++
o NoLambdas,Autos,templates,etc o NoBoost
 NO Streams
o Usedfopen,fread,fwrite
 No code in MACROS
o Codeneedstobeincppfilestoseeanddebugiteasy
 Exception:
o implicit problem needs templates
Leaking Memory
 If the program leaks memory
o Thereisadeductionof20%ofgrade
 If a class creates an object using new/malloc o Itisresponsibleforitsdeletion
 Any MEMORY dynamically allocated that isnt freed up is LEAKING o LeakingisHORRIBLE,soyoulosepoints
No Debug code or files disabled
 Make sure the program is returned to the original state
o Ifyouaddeddebugcode,pleasereturntooriginalstate
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields)
 If you disabled file, you need to re-enable the files
o Allfilesmustbeactivetogetcredit.
o Bettertolosepointsforunitteststhantodisableandloseallpoints
Allowed to Add files to this project
 This project will work as-is do not add files Due Dates
 See Piazza for due date
 Submit program perforce in your student directory assignment supplied.
 Fill out your this MS2 pdf and add YouTube link
o ONLYuseAdobeReadertofilloutform,allotherswillberejected.
o Fillouttheformanddiscussionforfullcredit.
 Need to see discussion of code, compiling and demo in VIDEO
o Demo and explain each prototype feature:
 YouTubeVideoDemo(publiclinkmustwork,nosigninrequired)
o Demo of the milestone
 IfIdonthearandseetheexplanation,Iassumeyoudidntdothefeature
Summary of Milestone
 Basics sound calls
o Vol,Panning,Pitch,Start,Stop,sounddurations,etc
 Stitching calls together by Voice Callbacks
 Priority System
 User Callbacks
 Async File loading
 Do all your working in MS2 directory
 Copy PA5 or PA6 to start the MS2 directory
 You need to use FileSlow methods for milestone2
i. No other file system allowed
 Make sure you submit this project many times to perforce as you develop i. You need to submit the project and the video for this milestone
 Demo cannot LEAK resources or memory
 Make sure you shut down all resources and threads correctly  Add a special Key to kill the program before exit
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete
Submission ReportSC 388/588
 For Demo timing
 Use std::this_thread::sleep_for() to control the time  If you need to sequence actions in the demo
 Do not have any Threads doing sleeps
 Only sleeps used in the demo timing
 Sound not specified
 Default Attributes:
i. Vol: 70%
ii. Pan: Center
iii. Pitch: Original iv. Priority: 200
 Playlists Loading
 Loaded before Blocking before Demo starts  Load this with your Blocking Wave loads
 Deliverables
 Stand-alone C++ demo
o CreateademotoshowofftheALLoftheabovefeatures
(Type in fields)
Key Q  QUIT is a good choice
Then escape key to close the window
 Need to see that there is no Memory Leaks on exit
o Useaudiosamplesthatallowyoutodemonstratetheabovefeatureseasily  Visual Studio 2019 Enterprise Edition
o C++warninglevel4
o Minimumcode,notemporariesorgenerateditems
o Needstobeabletocompileandrunas-iswithoutcheckingoutfromperforceor
changing the attributes of the files
 For some people  the demo is hardest part of this exercise
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Demo 1: BASICS
Demo 1: Basics
 You need to use FileSlow methods for milestone2
 All Sound wave assets need to be loaded/initiated from Game Side Setup:
 Given 5 simple mono wave samples o Sampledat48Khz,32-bit
 Create 5 separate simple playlists (scripts)  one sound wave, one sound ID o 101-Fiddle
o 102-Bassoon o 103Oboe2 o 104-SongA o 105-SongB
Start Demo 1 hit the 1 key to trigger it
 This is triggered in the update() method of the game o Readthekeyboardinput
o ThenloadandgowithyourDemo1
 The demo should play from there.
o Nouserinterventionneededjustneedthetimertriggersworking Time (seconds)
Submission Report Load Load Load Load 101 102 103 104 105
0 3 6 10 15 20 25
101 101 101 102 102 103 103
Real-time Multithreaded Architecture Milestone
Snd_C Play 103 Pan center
Start vol : 100%
(every 1ms) read vol, add delta over 2 secs Final vol: 0%
Priorty: 200 Initiated on Game thread
Snd_C Play 103 Pan center
Start vol : 0%
(every 1ms) read vol, add delta over 2 secs Final vol: 100%
Priorty: 200 Initiated on Game thread
Snd_B Play 102 70% Vol
Start pan :100% right
smoothly (every 1ms) pan left over 2 secs Final pan: 100% left
Priorty: 200 Initiated on Game thread
Snd_B Play 102 70% Vol
Start pan :100% left
smoothly (every 1ms) pan right over 2 secs Final pan: 100% right
Priorty: 200 Initiated on Game thread
Snd_A Play 101 Pan 100% Right, 70% Vol Priorty: 200 Initiated on Game thread
Snd_A Play 101 Pan 100% left, 70% Vol Priorty: 200 Initiated on Game thread
Snd_A Play 101 Pan Center, 70% Vol Priorty: 200 Initiated on Game thread
Blocking Load 105 Initiated On Game thread
Blocking Load 104 Initiated On Game thread
Blocking Load 103 Initiated On Game thread
Blocking Load 102 Initiated On Game thread
Blocking Load 101 Initiated On Game thread 
Real-time Multithreaded Architecture use Adobe Reader to complete
Submission ReportSC 388/588
Part A: Load sounds
(Type in fields)
o AddDebug::out()toshowthecallonthecorrectthread When loaded start time demo
 In Demo (Start with a key press) o BlockingLoadingSnd101 o BlockingLoadingSnd102 o BlockingLoadingSnd103 o BlockingLoadingSnd104 o BlockingLoadingSnd105
 Debug printing for each load
o InitiateonGameThread
Part B: preset pan test
 Timer: 0 seconds
o Play101withpanincenter,vol70%
 Timer: 3 seconds
o Play101withpan100%left,vol70%
 Timer: 6 seconds
o Play101withpan100%right,vol70%
Part C: runtime panning adjustment with write only
 Timer: 10 seconds, vol 70%
o Play102withpan100%leftandmoveitto100%right
 By setting the attribute directly
 Every 1ms change the panning
o Smoothlyfor2seconds  Timer: 15 seconds, vol 70%
o Play102withpan100%rightandmoveitto100%left  By setting the attribute directly
 Every 1ms change the panning o Smoothlyfor2seconds
Part D: runtime volume adjustment with a read modify write
 Timer: 20 seconds
o Play103withvolumeat0%andrampupthevolumesmoothlyto100% o Smoothlyacross2seconds
 Do this by 1st  reading the current volume
 Then add a delta to the volume and set the attribute directly
 Every 1ms change the volume
 Timer: 25 seconds
o Play103withvolumeat100%andrampdownthevolumesmoothlyto0% o Smoothlyacross2seconds
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete
Submission ReportSC 388/588
(Type in fields)
 Do this by 1st  reading the current volume
 Then add a delta to the volume and set the attribute directly
 Every 1ms change the volume Part E: Stereo effect from mono
Time (seconds)
30 35 38 60 72
 Timer: 30 seconds
o Play104withpan100%left,vol70% o Play105withpan100%right,vol70%
 Timer: 35 seconds
o PrintintheDebuggersOutputscreenthetime104hasbeenplayinginseconds
 (since it started playing)
 Need to use the systemno hard coding numbers
 Timer: 38 seconds
o PrintintheDebuggersOutputthetime104hasbeenplayinginseconds  (since it started playing)
 Need to use the systemno hard coding numbers
 Timer: 60 seconds
o PrintintheDebuggersOutputscreenthetime104hasbeenplayinginseconds  (since it started playing)
 Need to use the systemno hard coding numbers o Stop104
 Timer: 72 seconds
o PrintintheDebuggersOutputscreenthetime105hasbeenplayinginseconds
 (since it started playing)
 Need to use the systemno hard coding numbers o Stop105
Priorty: 100 Initiated on Game thread
Debug::out() use the sysem Display how long 105 has been playing Initiated on Game thread
Priorty: 100 Initiated on Game thread
Debug::out() use the sysem Display how long 104 has been playing Initiated on Game thread
Debug::out() use the sysem Display how long 104 has been playing Initiated on Game thread
Debug::out() use the sysem Display how long 104 has been playing Initiated on Game thread
Snd_E Play 105 Pan 100% Right, 70% Vol Priorty: 200 Initiated on Game thread
Snd_D Play 104 Pan 100% Left, 70% Vol Priorty: 200 Initiated on Game thread
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture CSC 388/588
Part F: Instancing several sounds
use Adobe Reader to complete
(Type in fields)
Time (seconds)
Submission Report_I 102
 Timer: 80 seconds
o Snd_F=Start102
o setvolto40%
 Timer: 80.5 seconds
o Snd_G=Start102
o setvolto40%
 Timer: 81 seconds
o Snd_H=Start102
o setvolto40%
 Timer: 81.5 seconds
o Snd_I=Start102
o setvolto40%
 Timer: 81.5 seconds
o StopSnd_F o StopSnd_G o StopSnd_H
 Timer: 82 seconds and beyond
o LetSnd_Iplayanddiewithoutintervention
Priorty: 200
Stop Snd_H
Initiated on Game thread
Priorty: 200
Stop Snd_G
Initiated on Game thread
Stop Snd_F
Initiated on Game thread
Priorty: 200
Snd_I Play 102 Pan center, 40% Vol
Priorty: 200 Initiated on Game thread Snd_H Play 102 Pan center, 40% Vol
Priorty: 200 Initiated on Game thread Snd_G Play 102 Pan center, 40% Vol
Priorty: 200 Initiated on Game thread
Snd_F Play 102 Pan center, 40% Vol Priorty: 200 Initiated on Game thread
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Demo 2: Voice Stitching
Demo 2: Voice Stitching  using XAudio2 Callbacks
 You need to use FileSlow methods for milestone2
 All Sound wave assets need to be loaded/initiated from Game Side Setup:
 See above description on Seinfeld:
o Given8simplemonowavesamples
 Sampled at 48Khz, 32-bit
 Create 8 separate simple waves
o Intro_mono o A_mono
o AtoB_mono o B_mono
o BtoC_mono o C_mono
o CtoA_mono o End_mono
 On controlling playlist
o SndID201isthecontrollerforthisplaylist
Start Demo 2 hit the 2 key to trigger it
 This is triggered in the update() method of the game o Readthekeyboardinput
o ThenloadandgowithyourDemo2
 The demo should play from there.
o Nouserinterventionneededjustneedthetimertriggersworking.
 Print the name of each wave as it stitched in the XAudio2 Callback
o Sinceonlyonewaveisstitchedatatime
o Thenamesshouldbeprintedwiththecallback
 They shouldnt be burst on the screen
 Instead one at a time with delays between them o UseDebug::out()fortheprinting
Submission Report Keenan
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture CSC 388/588
use Adobe Reader to complete
Submission Report Keenan
(Type in fields)
Time (seconds)
Voice Callback
Stream End Triggers next SrcVoice
Part A: Load sounds
o AddDebug::out()toshowthecallonthecorrectthread When loaded start time demo
 In Demo (Start with a key press)
o BlockingLoadingIntrowave
o BlockingLoadingAwave
o BlockingLoadingAtoBwave o BlockingLoadingBwave
o BlockingLoadingBtoCwave o BlockingLoadingCwave
o BlockingLoadingCtoAwave o BlockingLoadingEndwave
 Debug printing for each load
o InitiateonGameThread
Part B: Start the demo
 On the Game THREAD o At0seconds
Voice Callback
Stream End Triggers next SrcVoice
 Play 201, pan center, volume 70%
 Print the name of each wave as it stitched in the XAudio2 Callback
Repeat pan Center,Right,Left Every 10 secs Until song finishes
Load wave Load wave Load wave Load wave Load wave Load wave Load wave Load wave
Blocking Load End Initiated On Game thread Blocking Load C to A Initiated On Game thread Blocking Load C Initiated On Game thread Blocking Load B to C Initiated On Game thread Blocking Load B Initiated On Game thread Blocking Load A to B Initiated On Game thread Blocking Load A Initiated On Game thread Blocking Load Intro Initiated On Game thread
Snd_A Pan Center
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Left
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Right Priorty: 200 Initiated on Game thread
Snd_A Pan Center
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Left
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Right Priorty: 200 Initiated on Game thread
Snd_A Pan Center
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Left
Priorty: 200 Initiated on Game thread
Snd_A Pan 100% Right Priorty: 200 Initiated on Game thread
Snd_A Play 201 Pan center, 70% Vol Priorty: 200 Initiated on Game thread
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588
(Type in fields) Keenan
o Sinceonlyonewaveisstitchedatatime
o Thenamesshouldbeprintedatintervalsproportionaltothe
o At10seconds
 Pan Right 201
o At20seconds
 Pan Left 201
o At30seconds
 Pan Center 201
 Repeat the panning pattern
o Center,Right,Left10secondsapart
 Do this until the audio ends
individual wave playback
 They shouldnt be burst on the screen
 Instead one at a time with delays between them
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Demo 3: Priority
Demo 3: Priority
 You need to use FileSlow methods for milestone2
 All Sound wave assets need to be loaded/initiated from Game Side
 Given 1 simple mono wave samples o Sampledat48Khz,32-bit
Submission Report Keenan
 Create 1 separate simple playlists (scripts)  one sound wave, one sound ID o 301Coma
 For DEMO reasons we are allowing a maximum of 6 sound calls at a time o Otherwisethisdemowouldbe2xlonger
 You need the ability to print to the output window the current status of each sound call o Handle,priority,timeplaying
 Need handles  unique identifier
o Forexample:(3handlesintheactivetable)
 – Active Table 
 0xAAAA0001: 10  0xAAAA0004: 50  0xAAAA0005: 75
1500 ms 1500 ms 200 ms
o UseDebug::out()
 This shows the thread name as well
 Sound call for this demo is more of a placeholder
o Keepthevolumedownto10%forallofthesecall o Lowernumberisthehigherpriority
 Example: Snd_A 50 priority kills a Snd_X 75 priority
o IfSnd_AnewcallhasthesamepriorityofexistingSnd_Xspriority,
 Kill the oldest sound call with the same priorty
 Call the SPECIAL loading file loading functions
o SincemanyhaveSolidStateDriveweneedtosimulate  Delay and latency of network or slow hard drive
o UsetheFILE_SLOWclasstosimulatelatency  FileSlow::Open()
 FileSlow::Read()
 FileSlow::Seek()
 FileSlow::Tell()
 FileSlow::Close()
Real-time Multithreaded Architecture Milestone 
Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Start Demo 3 hit the 3 key to trigger it
 This is triggered in the update() method of the game o Readthekeyboardinput
o ThenloadandgowithyourDemo3
 The demo should play from there.
o Nouserintervention 
CS: assignmentchef QQ: 1823890830 Email: [email protected]

![[SOLVED] CS CSC 388/588 (Type in fields)   2](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[SOLVED] Programming Project for TCP Socket Programming](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
 
 
Reviews
There are no reviews yet.